学习目标:多态概念 重写重载 子父类转换
博主理解:方法的多态,重写重载,对象的多态性, 子父类的转换
需要注意的是重载重写都是执行子类执行父类的方法同样的方法,和子父类的转换,减少代码复用提高效率而设计的。
话题;
1.重载和重写的区别?
一张图就概括了一切相关的理论问题
2.重载 (在同一个类中)
/*这就是基本的重载*/
public void tell(int i ){
}
public void tell(String i ){
}
满足: 方法名字相同,
类型参数.个数不同的方法定义要求;
目的: 实现方法的不同功能 注意: 和返回值毫无关系
重写 (继承关系中)
class A{
public void tell(){
System.out.println("父类的方法");
}
}
class B extends A{
public void tell(){
super.tell();//1.super(超级代表的是父类的方法)
System.out.println("子类重写的方法");
}
}
满足: 方法名字,类型参数,个数完全相同的要求
目的: [代码的复用,也就是多态的含义])
注意: 和返回值毫无关系>
有重写是由于继承而引用的,那么这自然就是为了设计的需要了。在实际的项目过程中,要经常运用到多态的特性(可参考设计模式),重写就必不可少了。
转型:转型并不是赋值而是类型彻底的改变
向上转型:父类对象=子类实例,
向下转型:子类对象=(子类)父类实例
注意:先上后下 ,如果发生重写 父类执行的依然是子类的方法
如图:向上转型中 父类Text1.t2() 执行的子类重写方法
向下转型中 子类Text2.t2() 执行的是父类调用的方法
总结:多态概念是编程思想的重要部愤怒 重写,重载多为实用