java多态

来源:互联网 发布:360智能路由器软件 编辑:程序博客网 时间:2024/04/29 14:13
多态包括方法的重载和对象的多态。有助于分组协同开发
1 方法的动态绑定:编译器会主动把子类的方法绑定到父类之中
多态:父类的引用使用子类的方法
2 方法的重写:父类的方法在子类中重新声明
满足的条件:方法的名称相同  参数列表相同 返回列表兼容
子类覆盖父类的方法,方法的修饰符只能扩大不能缩小
为了满足向下兼容,继承在原有基础上扩展修改不能破坏,否则就破坏了继承的含义.继承实现代码的重用
private方法或成员变量没办法覆盖
子类方法不能比父类方法抛出更多的异常
main方法抛出异常抛给java虚拟机
重写是多态的前提,没有重写就没有多态。
通过super调用原来的方法。
this自己的构造函数相互访问。super调用父类的构造函数
为什么子类不能比父类抛出更多的异常?采用多态的方式调用
子类在覆盖父类方法的时候,父类的引用是可以调用该方法的,如果父类的引用调用子类的方法,那么这个多抛出来的异常,就可能处于一种无法被处理的状态。
3 成员变量的隐藏:
父类的变量在子类中重新声明,父类的成员变量就会被子类的成员变量隐藏。
父类的引用只能调用父类的成员变量。不能调用子类的成员变量。
因为成员变量的初始化在创建引用的时候就已经初始化。无论new谁的对象,都没有关系,只能调用父类的成员变量。
private无法继承
4 父类的引用可以指向子类的对象,也可以指向父类的对象
子类的引用不能指向父类的对象
5 引用的类型转换:必须具有继承关系
子类对象引用强制接受父类的对象,编译通过,运行不通过
父类对象引用强制接受子类的对象,编译运行都通过(泛型 向上转型 向上塑形)
6 father a=new son();
(son)a.成员变量出错((son)a).成员变量
0 0
原创粉丝点击