继承性: inheritance(繼承性)
格式:class A extends B{}
extends:扩展、延展
A :子类,派生类,subclass
B:父类。超类、基类、supclass
體現:一旦子類A繼承了父類B以後,子類A就獲取了父類声明的所有的属性、方法。
特别的:
父类中声明的private的属性和方法,子类继承父类以后,仍然认为获取 了父类中的私有的结构
只是因为封装性的影响,使得子类不能直接调用父类的结构而已。
子类继承父类以后,还可以声明自己特有的属性或方法,实现功能的拓展
作用:
1.減少了代碼的冗餘複用性,提高了代碼的;
2.便於功能的擴展
3.為之後的多態性,提供了前提
子类和父类的关系
不同于子集和集合的关系。
1.一个类可以被多个子类继承
2.java中只能是单继承,一个类只能有一个父类
3.子父类是相对的概念
4.子类直接继承的父类,称为直接父类,间接继承的父类称为间接父类
5.子类直接继承父类以后,就获取了直接父类以及所有间接父类属性和方法。
java.lang.Object类
1.Object类是所有Java类的根父类
2.如果所有在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
3.Object类中的功能(定义那些属性和方法)通用性
4.Object类只声明了一个空参的构造器
1.如果我们没有显示的声明一个类的父类的话,则此类继承于java.lang.Object
2.所有的java类(除java.lang.Object类之外),都直接或间接的继承于java.lang.Object类
3.所有的java 类都具有java.lang.Object类声明的功能。
子类对象的实例化过程:
1.从结果上看:
子类继承父类以后就获取了父类中声明的属性或方法;
创建子类的对象,在堆空间中,就会加载所有父类中声明的属性;
2.从过程看:
当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器, 直到调用了java.lang.Objeact类中空参的构造器为止,正因为加载过所有的父类的结构,所以才可以看到内存中有父类的结构类对象才可以考虑进行调用
明确:虽然创建子类的对象是,调用了父类的构造器,但是自始至终就创建了一个对象,即为new的子类对象