黑马程序员-继承
来源:互联网 发布:数控车编程实例 编辑:程序博客网 时间:2024/05/05 03:18
- ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
- 继承概述:
在java中只支持单继承,不支持多继承,因为多继承会出现安全隐患,
当多个父类中定义了相同的功能,当功能内容不同时,子类对象不确定要运行哪一个,
但是java保留了这种机制,并用另一种体现形式来完成表示,多实现。
java支持多层继承,也就是一个继承体系。
要想使用体系,先查阅体系父类的描述,因为父类中定义的是该体系中共性的功能
通过了解这个功能,就可以知道该体系的基本功能。
那么在具体调用的时,要创建最子类的对象,
一是因为有可能父类不能创建对象
二是创建子类对象可以使用更多的功能,包括最基本的,也包括最特有的。
总结来说就是查阅父类功能,创建子类对象使用功能。
- 继承:
提高了代码的复用性,
让类和类之间产生关系,有了这个关系,才有了多态的特性。
注意!千万不要为了获取其他类的功能,简化代码继承,必须是类和类之间有所属关系才可以继承。
如果子类中出现私有的同名变量时,
子类要访问本类中的变量,用this
子类要访问父类中的变量,用super
super和this的使用几乎一样
this代表的是本类对象的引用,
super是代表父类对象的引用。
1.子类继承父类的成员变量
当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:
1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发现隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。
2.子类继承父类的方法
同样地,子类也并不是完全继承父类的所有方法。
1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。
- 关于覆盖:
1.子类覆盖父类,必须保证子类的权限大于等于父类,才可以覆盖,否则编译失败,静态只能覆盖静态
重载:只看同名韩胡说的参数列表。 重写:子父类的方法要一模一样。
- 关于继承构造函数:
因为父类的数据子类可以直接获取,所以在建立子类对象的时候,需要先查看父类是如何对这些数据进行初始化的。
所以子类对象的初始化时,先访问一下父类中的构造函数。
如果要访问父类中指定的构造函数,可以先通过手动定义super语句方式来指定。
注意!super语句一定定义在子类构造函数的第一行。
子类的所有构造函数,都会默认访问父类中空参数的构造函数,
因为子类每一个构造函数的第一行都有一句隐式的super();
当父类中没有空参数构造函数时,子类必须手动通过super语句的形式来指定要访问父类中哪个构造函数。
当然,子类的构造函数的第一行也可以手动的指定this语句来访问本类中的构造函数。
子类中至少会有一个构造函数会访问父类中的构造函数。
- 黑马程序员-继承
- 黑马程序员_继承
- 黑马程序员03-继承
- 17.黑马程序员-继承
- 黑马程序员---继承,final,
- 黑马程序员----继承
- 黑马程序员---继承
- 黑马程序员--继承
- 黑马程序员-- 继承
- 黑马程序员--继承
- 黑马程序员---继承
- 黑马程序员-继承
- 黑马程序员---继承1
- 黑马程序员---继承2
- 黑马程序员--继承
- 黑马程序员-继承,多态
- 黑马程序员--继承
- 黑马程序员_Java继承
- HTTP协议详解
- myeclipse相关知识
- 爬楼梯(DP)
- win32 中关于ScrollWindow函数的应用
- react-native安装使用
- 黑马程序员-继承
- 使用runtime把导航栏的pop手势区域扩展至全局
- 分奖金(multiset)
- rgb数据转yuv数据代码示例
- javaIO-RandomAccessFile类
- maven 增加oracle11驱动
- 第8周项目4-String类的构造
- ovs教程
- div and span in HTML and CSS