2019.3.13 Java的特性——继承

时间:2021-02-24 17:44:37

继承

  • 面向对象编程(OOP)三大特征:继承,封装,多态

  • 目的:为了减少重复代码,避免复制粘贴

  • 创建父类Animal


public class Animal { private String name; //定义name属性
private String kind; //定义kind属性 private int age; //定义age属性 public void bite(){ //创建bite方法 System.out.println("咬咬咬");
} public void bark(){ //创建bark方法 System.out.println("叫叫叫")
} @Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", kind='" + kind + '\'' +
", age=" + age +
'}';
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getKind() {
return kind;
} public void setKind(String kind) {
this.kind = kind;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}
  • 创建子类Cat继承于父类Animal

public class Cat extends Animal{ }

  • MainClass中使用子类Cat

public class SecClass { public static void main(String[] args) { Cat cat = new Cat(); cat.setName("旺财");
cat.setAge(2);
cat.setKind("土狗"); System.out.println(cat);
cat.bark();
cat.bite();
}
}
  • 输出显示测试数据

    2019.3.13 Java的特性——继承

  • 注释

    • 子类和父类是相对概念

    • 只有单继承,只能继承一个类

    • 子类可以继承父类所有的"public"修饰的属性和方法,"private"修饰的无法继承

    • main中通过访问public方法来访问private属性

    • 子类可以有独特的方法和属性,功能可以比父类更细致

    • 父类比子类范围更大

    • Java中所有的类都最终继承于Object类

  • 当子类Cat中想要新加方法时


public class Cat extends Animal{ public void wash(){ System.out.println("洗脸");
}
}
  • 当子类Cat想要修改(重写)父类方法时

    • 子类可以重写(Alt+Insert选第三个,快捷键ctrl+o)
    • 测试样例,bark()方法想要输出"喵喵喵"

public class Cat extends Animal{ @Override
public void bark() { System.out.println("喵喵喵"); }
}
  • 当子类Cat既想重写父类方法,又想在父类方法的基础上新加东西

public class Cat extends Animal{ public void bite() { super.bite();//→就是执行前面的bite"咬咬咬" System.out.println("猫咬人");//新添加的东西
}
}
  • 注释
    • super的作用在子类中调用从父类继承的方法
  • 测试样例

    2019.3.13 Java的特性——继承