为了提高复用性,只建立一份代码。
一个类只要和另一个类产生关系就可以了。
两个之间没有继承关系,但是他们有共性的内容,
也可以共享一个父类。无论是学生还是工人,都是person。
面向对象的的一个特征:
好处:提高了代码的复用性,让类与类产生了关系,给另一个特征 多态,提供了前提。
怎么使用:必须保证类与类之间所属(is a)关系,xxx是zzz中的一种。
在java中继承的体现:
java允许单继承,不直接支持多继承(父类属性可能会有相同),将多继承进行其他方式的体现。
单继承:一个类只有一个父类。
多继承:一个子类可以有多个父类。java保留了她的好处,改良了他的弊端,用多实现来体现。
java还支持多重继承,
b继承a,c继承b,则c可以继承a的方法。为多重继承。
继承中子父类的体现方式:
继承在代码中的体现方式:
1,成员变量,
1子父类中若定义了一模一样的成员变量num,this.num(访问本类变量)
2如何在子类中访问父类同名变量:super.num(访问父类变量)
super与this的用法很相似:
this:代表的是本类的对象的引用,
super:代表的是父类内存空间,而不是父类对象。不可以直接输出super,但可以直接输出this。
2.成员函数的特点:
字父类中定义了一样的函数,
运行的为结果:为子类在运行。(重写,或覆盖或复写)父类被覆盖了。(overRide)
重写使用:
父类已经定义了某种功能,若子类也需要这种行为,
则可以直接拿来用,或者将功能稍作修改,保留功能声明,稍做内容的修改。
重写(覆盖)注意事项:
1,子类覆盖父类,必须保证权限大于或者等于父类的权限。
2,静态覆盖静态,父类中为静态,子类也要为静态。
3,写法必须一样:返回值,类型,函数名,参数列表都要一样。
3.子父类构造函数特点:super
1.子父类中构造函数相同,结果先执行了父类构造函数,然后有执行了子类构造函数//因为子类的所有构造函数中的第一行都有一句隐式语句super();默认调用了父类中空参数的构造函数。
2.当父类中没有空参数构造函数时,子类的构造函数必须通过显示的super语句指定要访问的父类的构造函数。
3.子类中所有的构造函数都会去访问父类中默认的空参构造函数。
子类实例化即super的应用。。
|
|