第5章 继承
来源:互联网 发布:java 补全位数 编辑:程序博客网 时间:2024/05/04 20:31
5.1 类、超类和子类
1、JAVA中,所有的继承都是公有继承
2、超类即父类,一般将通用的方法放在超类中,将具有特殊用途的方法放在子类中。
3、覆盖超类中的方法。要求函数名、参数、都一致。 5.0版之前要求返回类型也必须一致,6.0版本允许子类的返回类型为超类的返回类型的子类型。而且子类的方法不能低于超类方法的可见性。
4、若要调用父类对应方法,则使用super关键字。
5、 使用super调用父类构造函数的语句必须是子类构造函数的第一句 。
6、如果子类的构造器没有显式的调用超类的构造器,则将自动的调用超类默认的构造器(即没有参数那个) 。而如果父类没有不带参数的构造函数,而且子类构造函数中又没有显示调用父类的其他构造函数,则编译出错。
7、一个对象变量可以引用多种实际类型的现象被称为 多态 ,在运行时能够自动地选择调用哪个方法的现象被称为动态绑定 。
(1)继承层次
由一个公共超类派生出来的所有类的集合被称为继承层次 。 Java不支持多继承,使用接口代替。
(2)多态
1、对象变量时多态的,一个超类的对象变量既可引用超类对象,也可引用其任何一个子类的对象。
2、但超类的对象变量即使指向子类对象,也无法调用子类特有的方法。
3、不能将一个超类的对象变量赋给子类的对象变量。
4、子类数组的引用可以转换成超类数组的引用,而不需要采用强制类型转换,但如果使用新的超类引用加入一个超类对象到子类数组中去,将会导致潜在错误。
(3)动态绑定
对象调用方法的过程
1、编译器查看对象的声明类型和方法名
2、编译器查看调用方法时提供的参数类型
3、如果是private、static、final方法或者构造函数,则调用方式称为静态绑定。而在调用时依赖于隐式参数的实际类型,并且在运行时实现动态绑定。
4、动态绑定时,从当前引用对象的类向超类找起,找到最合适的那个类的方法。为减小搜索开销,JVM为每一个类创建一个方法表。
(4)阻止继承:final类和方法
1、不允许被扩展的类被称为final类。
2、类中的方法也可以被声明为final,从而不能被子类覆盖这个方法。final类中的所有方法自动的成为final方法。
3、类中的域(变量)也可被声明为final,从而构造了对象之后就不可以被改变其值了。final类的域并不都自动成为final域。
(5)
- 第5章 继承
- 第5章 继承
- 第5章 继承
- 第5章 继承
- 《JavaScript语言精粹》--第5章:继承
- 第5章 Java封装与继承
- 第5章 maven继承特性
- 第5章 继承的概念
- 第5章 子类与继承
- 第4章 继承
- 第25章、继承
- 第12章:继承
- 第6章 继承
- 第10章 继承
- 第11章实现继承
- 第13章 类继承
- 第13章 类继承
- 第13章-类继承
- TCP TIME_WAIT状态(2MSL)
- Win 2000系统引导过程详解(上,中,下)
- SVN局域网服务器简单配置及使用方法
- 开题
- multicast vs broadcast 2
- 第5章 继承
- 如何创建不包含文档的数据库副本
- Singleton 单件模式及其变体 Double-Checked Locking 双重检查锁模式
- 我的新书:《精通Excel公式、函数与图表》已出版上市
- 开博
- crontab 的格式备忘
- SVN Eclipse插件Subclipse安装和配置
- C 语言学生档案管理系统(源代码)
- weka入门教程