多态

来源:互联网 发布:淘宝一个月还能退货吗 编辑:程序博客网 时间:2024/05/06 15:18
\g1.什么是多态
   (专业说法)同一种引用类型,使用不同的实例而执行不同的操作。(是具有表现多种形态的能力的特征)


2.子类到父类的转换:(自动转型)
   1)向上转换(upcasting):Pet pet = Dog dog();


3.规则:
  1)将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换。
  2)此时通过父类引用变量调用的方法是子类覆盖或继承父类方法,不是父类的方法。
  3)此时通过父类引用无法调用子类特有的方法。


4.父类到子类的转换
  1)向下转型:将一个指向子类的父类引用赋给一个子类的引用。(强制转型)
  Dog dog =(Dog)pet;


5.instanceof运算符
   1)来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false;
   2)通常和强制类型转换结合使用,先通过instanceof进行类型判断,再进行相应的强制类型转换。


6.向上转型和向下转型的区别:
  1)向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,
     通过父类引用变量无法调用子类特有的方法。
  2)向下转型后可以访问子类特有的方法。必须转换为指向的真实子类类型,
     否则将出现类型转换异常ClassCastException.


7.多态的好处
(1)对修改关闭
(2)知道一种类型,那就可以使用不同的实例执行不同的操作;
这样就可以减少重复代码,可以提高代码的可扩展性和可维护性。
(3)使用多态处理参数和返回值的时候,更加方便,对编写接口程序很有好处。


8.怎么使用多态
(1)编写父类
(2)编写子类,重写父类方法
(3)调用运行时,使用父类类型,调用子类对象中的方法


9.使用的地方
(1)方法的参数(父类作为方法形参)
(2)方法的返回值(父类作为返回值类型)


10. 继承和多态的关系:
   继承是多态的基础,没有继承就没有多态


11.构成多态:
    1.继承
    2.重写
    3.子类调用父类的方法

原创粉丝点击