继承extends:子类继承父类中所有的非私有属性和方法
构造函数不会被继承
子类可以有自己的方法
重写(覆盖):
继承关系下,子类中的方法与父类中继承的方法名相同
参数列表相同,返回值类型相同
实例 父类 Animal
package com.zking.work01;
public class Animal {
int id;
String name = "动物";
int age;
public void sleep(){
System.out.println("动物睡觉的方法");
}
public void eat(){
System.out.println("动物吃的方法");
}
public void run(){
System.out.println("动物跑的方法");
}
}
子类 继承父类
extends Animal
package com.zking.work01;
public class Cat extends Animal {
String name = "猫";
public void eat(){
System.out.println("猫吃东西");
}
public void showinfo(){
//本类的属性
System.out.println("猫类"+name);
//调用父类的属性
System.out.println("动物类"+super.name);
}
}
子类(dog) 继承父类
package com.zking.work01; public class Dog extends Animal { public void eat(){ System.out.println("狗吃东西"); } public void km(){ System.out.println("看门的方法"); } }
测试类
package com.zking.work01; public class TestAnimal { public static void main(String[] args) { //创建一个老虎 Tiger a = new Tiger(); a.name = "小宝"; a.age = 3; a.id = 1; a.eat(); //创建一个猫对象 Cat c = new Cat(); c.name = "泰迪"; c.age = 3; c.id = 1; c.eat(); c.showinfo(); Dog d = new Dog(); d.eat(); } }
总结:
父类中私有化的属性不能被子类继承
子类 不能继承2个或多个父类
而父类却能继承给多个子类
调用规则
(父类中子类没有的方法可以直接继承父类中的方法
子类 和父类中都有的方法 就直接使用子类中的方法 就近原则)