package 多态;
public class Animals {
private String name;
private int age;
public int agee=9;
//get,set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//构造方法
public Animals() {}
public Animals(String name,int age) {
this.name=name;
this.age=age;
}
//吃饭方法(供重写)
public void eat() {
System.out.println("动物要吃饭");
}
}
package 多态;
public class Dog extends Animals{
//构造方法
public Dog() {}
public Dog(String name,int age) {
super(name,age);
}
//重写eat方法
public void eat() {
System.out.println("狗要吃好多好多骨头");
}
}
package 多态;
public class Cat extends Animals {
public int agee=5;
//构造方法
public Cat() {}
public Cat(String name,int age) {
super(name,age);
}
//重写eat方法
public void eat() {
System.out.println("猫要吃好多好多鱼");
}
//子类独有方法
public void tree() {
System.out.println("猫会上树");
}
}
package 多态;
public class test {
public static void main(String[] args) {
/*继承测试
//测试Cat类
//测试有参构造方法与get方法
Cat c=new Cat("毛毛",1);
System.out.println(c.getName());
System.out.println(c.getAge());
//测试无参构造方法与set方法
Cat c1=new Cat();
c1.setName("花花");c1.setAge(11);
System.out.println(c1.getName());
System.out.println(c1.getAge());
//测试子类重写方法
c.eat();
//测试Dog类
//测试有参构造方法与get方法
Dog d=new Dog("狗哥",3);
System.out.println(d.getName());
System.out.println(d.getAge());
//测试无参构造方法与set方法
Dog d1=new Dog();//...
//测试子类重写方法
d.eat();
//测试Animals类,同上,略
//...
Animals a=new Animals("动物",0);
System.out.println(a.getName());
System.out.println(a.getAge());
//...
Animals a1=new Animals();//...
//父类被重写方法
a.eat();
*/
/*多态测试
Animals a=new Cat("hhh",11);//向上转型
a.eat();//编译看左边,执行看右边
System.out.println(a.agee);//编译看左边,执行看左边
//a.tree();
//报错,父类无法使用子类特有方法
Cat c=(Cat) a;//向下转型
c.eat();//编译看左边,执行看右边
System.out.println(c.agee);//编译看左边,执行看左边
c.tree();//通过向下转型使用子类特有方法
}
*/
}
}