java笔记-多态

来源:互联网 发布:ai矢量图软件免费下载 编辑:程序博客网 时间:2024/04/29 01:26

一、多态的概述

多态:对象在不同时刻表现出来的不同状态

多态是针对引用类型:编译期间的状态和运行期间的状态。

前提条件:

A、要有继承关系

B、要有方法重写

C、要有父类引用指向子类对象

class Fu{

public void show(){

System.out.println("fu show");

}

}

class Zi extends Fu{

public void show(){

System.out.println("zi show");

}


}

class DuoTai{

public static void mian(String[] args){

Fu f=new Zi();//f表示父类引用,new Zi()是创建一个子类对象。

}

}

这就是多态编译期间父类型,运行期间是子类型。


二、多态的成员特点

成员变量是父亲的,成员方法是儿子的。方法有重写,而变量没有

A:成员变量(编译看左边,运行看左边)

B:成员方法(编译看左边,运行看右边)


三、多态的弊端和解决方案

多态的弊端:

父类引用不能使用子类特有功能

解决方法:

基本类型转换:隐式转换(从小到大),显示转换(从大到小)

引用类型转换:向上转型(从小到大),向下转型(从大到小)

class Fu{

public void show(){

System.out.println("fu show");

}

}

class Zi extends Fu{

public void show(){

System.out.println("zi show");

}

public void method(){

System.out.println("zi method");

}

}

class DuoTai{

public static void mian(String[] args){

Fu f=new Zi();//向上转型,不能调用子类中的method方法

Zi z=(Zi) f;//向下转型,可以通过z调用子类中的method方法,不创建新的子类对象

}

}

只有在运行是才回去new对象,开辟空间。运行是不创建对象。



四、多态的好处

为了提高代码的扩展性和可维护性。工具类中的方法用父亲接收,增加子类不需要修改工具类。


继承的弊端是强耦合:父类有的,子类也会有

线程的相关阅读资料:设计模式(面向对象阎闳)、数据结构+算法(java版)、线程的并发编程

0 0
原创粉丝点击