第三章 多态

来源:互联网 发布:施工网络计划图软件 编辑:程序博客网 时间:2024/05/29 14:32

1.什么是多态?

多态是具有表现多种形态的的能力特征。更专业的说法是:同一个实现接口使用不同的实例而执行不同的操作。


2.多态性与继承,方法重写密切相关。


3.子类到父类的转换  (向上转型)

//  int型常量或变量的值赋给double型变量,可以自动进行类型转换

int  i =5;

double  d1  =5;


// 将double型常量或变量的值赋给 int型变量,进行强制类型转换

double  d2 =3.14;

int  a=(int)d2;


4.在引用数据类型的子类和父类之间也存在类型转换,如下代码:

     Dog  dog= new Dog ("欧欧","雪纳瑞");   //不涉及类型转换

dog.eat();

Pet  pet = new Dog  ("欧欧","雪纳瑞");  // 子类到父类的转换

pet.eat();                                    // 会调用Dog类重写的eat 方法,而不是pet类的eat() 方法

pet.catchingFlyDisc();            // 编译错误, 父类的引用无法调用子类的特有方法。


5.子类转换成父类的规则:

(1)将一个父类的引用指向一个子类的对象,称为向上转型(upcasting),自动进行类型转型。

(2)此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法。

(3)此时通过父类引用变量无法调用子类特有的方法。


6.使用父类作为方法形参实现多态。

使用父类作为方法的形参,是Java中实现和使用多态的主要方式之一。


7.使用父类作为方法返回值实现多态。

使用父类作为方法的返回值,是Java中实现和使用多态的另一种方式。


8.总结:  (实现多态的3个条件)

        继承的存在(继承是多态的基础,没有继承就没有多态)。

 子类重写父类的方法(多态下调用子类重写后的方法)

 父类引用变量指向子类对象(子类到父类的转换)。

0 0
原创粉丝点击