定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println("猫吃了鱼")这样的打印语句,另外狗有自己的方法看门guardEntrance(),猫自己独有的方法捉老鼠huntMice()
1.定义一个Test类,在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的cry(),eat();
2.将Pet引用强制转换为具体的Dog,Cat,并调用Dog的guardEntrance(),Cat的huntMice()(提示:先用instanceof进行类型判断)
Pet class
package 继承与多态t4;
public class Pet {
public void cry() {
System.out.print("叫:");
}
public void eat() {
System.out.print("吃东西:");
}
}
Dog class
package 继承与多态t4;
public class Dog extends Pet{
@Override
public void cry() {
super.cry();
System.out.print("狗叫"+"n");
}
@Override
public void eat() {
super.eat();
System.out.print("狗吃了鱼"+"n");
}
public void guardEntrance() {
System.out.print("看门"+"n");
}
}
Cat class
package 继承与多态t4;
public class Cat extends Pet {
@Override
public void cry() {
super.cry();
System.out.print("猫叫"+"n");
}
@Override
public void eat() {
super.eat();
System.out.print("猫吃了鱼"+"n");
}
public void huntMice(){
System.out.print("捉老鼠"+"n");
}
}
Test Class
package 继承与多态t4;
public class Test {
public static void main(String[] args) {
Pet pet1=new Dog();
Pet pet2=new Cat();
pet1.cry();
pet2.eat();
Pet dog=new Dog();
Dog dog1=(Dog) dog;
Pet cat=new Cat();
Cat cat1=(Cat) cat;
System.out.println(dog1 instanceof Dog);
System.out.println(cat1 instanceof Cat);
dog1.guardEntrance();
cat1.huntMice();
}
}
运行如图
相关知识
定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(“
java编程定义狗
java继承
java测试类pet
Object类、多态
编写程序模拟“主人”喂养“宠物”的场景,利用多态的思想。
学生喂养三种宠物:猫、狗和鸟
学生喂养三种宠物:猫、狗、鸟
提示1: 主人类: Master 宠物类: Pet
多态
网址: 定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(“ https://m.mcbbbk.com/newsview154927.html
上一篇: 训练你的狗狗不再大声吠叫(如何有 |
下一篇: 为什么泰迪会突然叫?探讨可能引发 |