多态接口
- 调用子类中的方法1
package com.duotai2;x
public class 多态案列2 {
public static void main(String[] args) {
Animal animal1= new Dog();
animal1.name = "二哈";
Animal animal2= new Cat();
animal2.name = "二淼";
Master master = new Master();
master.feed(animal2);
master.feed(animal1);
}
}
abstract class Animal {
String name;
public abstract void eat() ;
}
class Dog extends Animal{
@Override
public void eat() {
System.out.println("Dog吃骨头");
}
public void lookDoor() {
System.out.println(name + "看门");
}
}
class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
public void playGame() {
System.out.println(name + "玩游戏");
}
}
class Master{
public void feed(Animal animal){
System.out.println("准备喂" + animal.name+"吃");
animal.eat();
System.out.println( animal.name + "吃完了");
if(animal instanceof Dog){
Dog dog = (Dog)animal;
dog.lookDoor();
} else if (animal instanceof Cat ){
Cat cat = (Cat)animal;
cat.playGame();
}
}
}
- 调用子类中的方法2
public class DuTai {
public static void main(String[] args) {
Animal animal1= new Dog(10 , "二哈");
Animal animal2= new Cat(20 , "二喵");
Master master = new Master();
master.feed(animal1);
master.feed(animal2);
}
}
interface Animal {
void eat() ;
}
class Dog implements Animal{
String name;
int age;
public Dog(int age, String name) {
this.name = name;
this.age =age;
}
@Override
public void eat() {
System.out.println("Dog吃骨头");
}
public void lookDoor() {
System.out.println(name + "看门");
}
}
class Cat implements Animal{
String name;
public int age;
public Cat(int age, String name) {
this.name = name;
this.age =age;
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
public void playGame() {
System.out.println(name + "玩游戏");
}
}
class Master{
public void feed(Animal animal){
Dog dog = null;
Cat cat = null;
String name = null;
if(animal instanceof Dog){
dog = (Dog)animal;
name = dog.name;
}
else if (animal instanceof Cat ){
cat = (Cat)animal;
name = cat.name;
}
System.out.println("准备喂" + name +"吃");
animal.eat();
System.out.println( name + "吃完了");
if( dog != null){
dog.lookDoor();
}
else if (animal instanceof Cat ){
cat.playGame();
}
}
}