继承
-
面向对象编程(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();
}
}
-
输出显示测试数据
-
注释
-
子类和父类是相对概念
-
只有单继承,只能继承一个类
-
子类可以继承父类所有的"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的作用在子类中调用从父类继承的方法
- 测试样例