十二.继承定义及使用:
二.继承实现:
(1)继承:
class 子类 extends 父类 {}
子类又称派生类,父类又称超类(super class)
eg: 观察继承
class Students extends Person{ }
继承实现的目的:扩充已有的功能
(2)内存关系:
三.子类对象实例化流程:
(1)对实例化定义有要求:
先实例化好父类,然后子类实例化。
不做代码解释。
(2)结论:无论如何折腾,在实例化子类对象的同时一定会实例化父类对象,目的是给所有类分配内存空间。
super和this都可以调用构造方法的参数,super调用父类参数,this调用本类参数。
四.继承定义限制:
(1)java之中不允许多重继承,只允许多层继承。
很好理解,一个人只能由一个爹。
eg:错误继承
class A {} class B {} class C extends A,B {}
继承的目的:扩展已有的功能
多重继承的目的:扩展继承多个类中的方法
而面对于多继承的要求,必须将范围限定在同一类中。
正确继承如下:
class A{} class B extends A{} class C extends B{}
但多层继承也有限度,千万别祖宗二十代,对于继承,理论上层次不应该超过三层。
(2)子类可继承父类中的所有操作结构,但是对于私有操作属于隐式继承(见不得人的好事),非私有继承是显示继承(亿万家产)
class Person { private String name; public void setName(String name){ this.name = name ; } public String getName(){ return this.name; } } class Student extends Person { public void fun(){ //System.out.println(name); 直接引用不可取 System.out.println(getname()); //间接引用 } } public class Stringdemo{ public static void main(String args[]) { } }
继承一旦发生,所有操作都可以被子类使用,子类最少会维持父类的现有功能(java不考虑败家子的情况)