黑马程序员技术交流社区
标题:
关于继承的总结!
[打印本页]
作者:
卑微の小幸福
时间:
2013-11-6 22:32
标题:
关于继承的总结!
这几天的学习感觉很好。收获颇多啊!以前的效率都在哪去了,看看27,突然感觉速度有点慢了!得加快步伐了!!!!!!!!!!!
一、概念:继承就是一个类(父类)抽取具有共同属性的方法,再由具有这些共同属性的类(子类)来继承它,从而提高代码的复用性。
二、特点是:
1、提高代码复用性,定义在父类中的成员(变量和方法),可以被子类重复使用;
2、让类与类之间产生关系,这样就会有多态的特性。使得应用起来更方便。
3、在java中只支持单继承,不支持多继承。
4、但是java支持多层继承。
三、子父类出现后,类成员的特点:
类成员:变量、函数、构造函数
1、变量:
子父类中出现非私有的同名成员变量是,子类访问本类的同名时,要用this关键字(如果省略了this,仍是代表本类的变量);子类访问父类同名变量时,则用super关键字。
补充:this和super两者都存在与方法区中。
this:本类对象引用,切记:是哪个对象调用this所在的函数,this就代表哪个对象。
super:父类对象引用。且和this一样在构造函数第一行,(不能与this同时存在)
2、.函数:(覆盖(重写))
当子类同父类出现相同函数时,子类对象调用该函数时,会运行子类内容,如同覆盖父类函数一样。实际上并没有覆盖父类的函数,如果还需要调用父类的这个方法,需要用super.方法名即可。
注意:
覆盖时,子类方法权限一定要大于等于父类方法权限。
静态只能覆盖静态。
3、构造函数:子类所有构造函数都会访问父类的空参构造函数(在第一行都默认了super();)所以:如果父类中无空参数构造函数(即父类中显式的构造了含有参数的构造函数),一般都手动加入父类中该构造函数。
子类构造函数也可手动指定this语句,来访问本类中的构造函数,但子类中至少要有一个构造函数访问父类的构造函数(继承嘛,呵呵)。
四、final:
final修饰的范围:类,变量,函数。
修饰的作用:
final修饰的类,不能被继承;
变量:基本数据类型是常量;引用数据类型其地址值不能改变。
函数,不可以被重写(覆盖)。
final修饰的变量名称一般都是大写的。
且在修饰成员变变量时,变量要被初始话,且初始化有两种:1,显示初始化。2,构造函数初始话-------注,两种不可以同时进行
final 修饰数组,相当于定义了一个,指向含有N个元素数组的常量指针,指针中的地址不能变,但地址所指单元内容是可以修改的
final与 private:
区别:1,final修饰的类可以访问
private不可以修饰外部类,可以修饰内部类,
2,final修饰的方法不可以被子类重写
private修饰的方法子类是看不到父类的私有方法的
3,final修饰的变量只能在显示初始化或者构造函数初始化的时候赋值一次,以后不允许更改
private修饰的变量,也不允许直接被子类或一个包中的其它类访问或修改,但是他可以通过set和get方法对其改值和取值
希望继续补充!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2