第三章 多态

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个条件)

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值