Java不支持多继承,因为容易带来安全隐患,当多个父类中定义了相同功能,但功能内容不同时,子类对象不确定要运行哪一          个。

继承是底层不断向上抽取共性而来的。在具体调用时,要创建最子类的对象(更多的功能,包括共有的和特有的)。

加载子类文件时候,先加载父.class,再加载子.class

类中成员:一、函数,二、变量,三、构造函数。

重写(覆盖):子类和父类有一模一样的函数时,当子类对象调用函数时,会运行子类函数内容,如同父类函数被覆盖一样。子类         覆盖父类,必须保证子类权限大于等于父类权限,否则编译失败。静态只能覆盖静态。

加final关键字限制重写。

构造函数没有覆盖。

子类构造函数第一行有一条隐式的super();语句,会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super()构造函数里面要么有this()要么有super()

父类的数据子类可以直接获取子类对象在建立时,需要查看父类是如何对这些数据初始化的。

子类在对象初始化时,要先访问父类中的构造函数

子类的所有构造函数,默认都会访问父类中空参数的构造函数。因为子类每一个构造函数内的第一行都有一句隐式super()。

父类中没有空参数的构造函数时,子类必须手动通过super或者this语句形式来指定要访问的构造函数

子类构造函数第一行也可以手动指定this语句来访问本类中的构造函数,子类中至少会有一个构造函数会访问父类中的构造函数

如果要访问父类中指定的构造函数,可以通过手动定义super语句的方式指定。

例:

class zi extends Fu {
     zi(){
          super();    //默认方式。
          super(4);  //手动指定方式。
}
}

子类一旦实例化就会走父类。

子类调动父类函数时,调用构造函数super(),调用一般函数super. 。

————————————————————————————————————————————————————————

 

抽象方法一定存放在抽象类中,抽象类不可以创建对象(抽象类不可以实例化),因为调用抽象方法没有意义。

抽象类中的抽象方法要被使用,必须由子类复写其所有抽象方法后,建立子类对象调用(如果子类只覆盖了部分抽象方法那么该子类还是一个抽象类)。 

抽象可以强迫子类去重写抽象方法。

抽象函数也是一类事物当中应该具备的功能,只不过功能主体(这类事物的)具体子类实现方式不一样。