Java学习之子类(一):子类与父类

mac2022-07-05  31

继承是一种由已有的的类创建新类的机制,由继承得到的类称为子类,被继承的类称为父类(超类),Java不支持多重继承,子类只能有一个父类

子类 通过使用关键字extends来定义一个类的子类,格式如下: class 子类名 extends 父类名 { … }

如 class Student extends People { … }

类的树形结构: Java的类按继承关系形成树形结构(将类看作树上的结点),在这个树形结构中,根节点是Object类(Object是java.lang包中的类)。 Object类是所有类的祖先类,任何类都是Object类的子孙类 一个类可以有多个或零个子类,但是有且仅有一个父类(除了Object类)。 如果一个类(除了Object类)的声明中没有使用关键字extends关键字,那么这个类被默认为Object的子类。

子类的继承性: 类可以有两种重要的成员:成员变量和方法 1、子类中定义的实例方法如果不能操作父类的某个成员变量,那么该成员变量就没有被子类继承 2、子类让我们不用从头开始,可以继承父类的变量和方法 3、如果一个类和其父类在同一个包中,那么子类自然继承了父类中不是private的成员变量和方法作为自己的变量和方法,继承的变量和方法的访问权限保持不变 4、若一个类和其父类不再同一个包中,父类中的private和友好访问权限的成员变量不会被子类继承,子类只继承父类中的protected和public访问权限的成员变量和方法作为自己的成员变量和方法

对protected的进一步说明 一个类A中的protected成员变量和方法可以被它的子孙类继承 如B是A的子类,C是B的子类,D是C的子类 那么B,C,D都继承了A类中的protected成员变量和方法 1、如果用D类在D本身创建一个对象,那么该对象总是可以用过"."运算符访问继承自己定义的protected变量和protected方法的 2、如果在另外一个类中,例如在Other类中用D类创建了一个对象object,该对象有以下限制 (1)对于子类D自己声明的protected成员变量和方法,只要Other类和D类在同个包中,object对象就可以访问这些protected成员变量和方法 (2)对于子类D从父类继承的protected成员变量和方法,需要追溯到这些protected成员变量或方法所在的“祖先”类,例如可能在A类,只要Other类和A类在同个包中,object就能访问继承的protected变量和方法

最新回复(0)