本文主要是介绍定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(“,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
定义一个宠物类(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{@Overridepublic void cry() {super.cry();System.out.print("狗叫"+"\n");}@Overridepublic void eat() {super.eat();System.out.print("狗吃了鱼"+"\n");}public void guardEntrance() {System.out.print("看门"+"\n");}
}
Cat class
package 继承与多态t4;public class Cat extends Pet {@Overridepublic void cry() {super.cry();System.out.print("猫叫"+"\n");}@Overridepublic 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);//我的想法是,如果输出照常执行,那就说明类型没错,可以进行调用。如果类型有错,他输出就会报错嘛,就不会执行了,不需要使用if else。dog1.guardEntrance();cat1.huntMice();}
}
运行如图
这篇关于定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(“的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!