1 继承性的好处
① 减少了代码的冗余,提高了代码的复用性
② 便于功能的扩展
③ 为之后多态性的使用,提供了前提
2 继承性的格式
class A extends B{}
- A:子类、派生类、subclass
- B:父类、超类、基类、superclass
- 2.1体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明>的所有的属性和方法。
特别的,父类中声明为private的属性或方法,子类继承父类以后,>仍然认为获取了父类中私有的结构。- 只有因为封装性的影响,使得子类不能直接调用父类的结构而已。
- 2.2 子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。
- 子类和父类的关系,不同于子集和集合的关系。
- extends:延展、扩展
3 Java中关于继承性的规定
- 1.一个类可以被多个子类继承。
- 2.Java中类的单继承性:一个类只能有一个父类
- 3.子父类是相对的概念。多层继承,最低层有高层的所有结构
- 4.子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类
- 5.子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
- 6.所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类
练习:
- 定义一个ManKind类,包括成员变量int sex和int salary;方法voidmanOrWoman():根据sex的值显示“man”(sex1)或者“woman”(sex0);方法void employeed():根据salary的值显示“no job”(salary==0)或者“ job”(salary!=0)。
- 定义类Kids继承ManKind,并包括成员变量int yearsOld;方法printAge()打印yearsOld的值。
- 定义类KidsTest,在类的main方法中实例化Kids的对象someKid,用该对象访问其父类的成员变量及方法。
源代码(三个类都在同一个包下):
ManKind.java
public class ManKind {
private int sex;
private int salary;
public int getSex() {
return this.sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getSalary() {
return this.salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void manOrWoman() {
if(sex == 1) {
System.out.println("man");
}else {
System.out.println("wonman");
}
}
public void employeed() {
if(this.salary > 0) {
System.out.println("job");
}else {
System.out.println("no job");
}
}
}
Kids.java
public class Kids extends ManKind{
private int yearsOld;
public void printAge() {
System.out.println("the years old is "+yearsOld);
}
}
KidsTest.java
public class KidsTest {
public static void main(String[] args) {
Kids someKid = new Kids();
someKid.setSalary(10000);
someKid.setSex(1);
someKid.employeed();
someKid.manOrWoman();
}
}
输出:
job
man
参考:2019尚硅谷Java基础课程