父类程序Animal
package day5Demo1;
public class Animal {//创建一个父类
private String name;
private int age;//定义两个私有变量
public Animal(){
super();
System.out.println("动物的无参构造方法");
}//无参构造方法
public Animal(String name,int age){
this.name=name;
this.age=age;
System.out.println("姓名,年龄");
}//有参构造方法
public void eat(){
System.out.println("动物吃");
}//定义一个简单的方法
public String getName() {
return name;
}//定义一个规定的方法通过其他类给私有变量name赋值
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}//定义一个规定的方法通过其他类给私有变量age赋值
public void setAge(int age) {
this.age = age;
}
}
子类程序Dog
package day5Demo1;
public class Dog extends Animal {//子类继承父类
String type;
/*
* 方法重写:父类的方法实现不能满足于子类的需求时,可以将父类中定义好的方法功能重写过来
* 重写规则:
* 方法名相同,参数相同
* 数据类型相同
* 访问权限修饰符相同
* 与父类方法结构相同
* */
@Override
public void eat() {
System.out.println("狗吃骨头");
super.eat();//成员方法中super可以不用放在第一行
}
/*
* 类的加载:如果一个类有父类,那么会先加载父类
* */
public Dog(){
super("汪汪",5);//默认在构造方法的第一行,使用super调用父类的构造方法,没有显示声明,则默认在第一行,显示的调用也必须在第一行
System.out.println("狗的无参构造方法");
}
public void study(){
System.out.println("狗学习");
}
}
测试程序Test
package day5Demo1;
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();//创建一个狗类对象
dog.eat();//调用Dog里面的eat方法,因为子类对象重写了父类对象的eat方法,所以直接调用子类中的重写的方法
}
}
通过一个简单的java小程序了解一下继承的运行顺序,以及重写的简单运用,详细讲解请看程序注解