当前位置: 代码迷 >> J2SE >> 关于多态~该怎么处理
  详细解决方案

关于多态~该怎么处理

热度:57   发布时间:2016-04-24 12:58:16.0
关于多态~~
谁有关于多态的较好的例子呀···我看得晕这的··先谢谢啦··哈

------解决方案--------------------
class Animal {
private String name;
Animal(String name) {
this.name=name;
}

public void enjoy(){
System.out.println("叫声...");
}
}

class Cat extends Animal {
private String eyesColor;
Cat(String n,String c) {
super(n);
eyesColor = c ;
}
public void enjoy() {
System.out.println("猫叫...");
}
}

class Dog extends Animal {
private String furColor;
Dog(String n,String c) {
super(n);
furColor = c;
}
public void enjoy() {
System.out.println("狗叫...");
}
}

class Lady {
private String name;
private Animal pet;
Lady(String name,Animal pet) {
this.name = name; 
this.pet = pet;
}
public void myPetEnjoy() {
pet.enjoy();//只有运行的时候,才知道调用的是哪个动物的 'enjoy()' 方法
}
}

public class Test {
public static void main(String args[]) {

Cat c = new Cat("mimi","blue");
Dog d = new Dog("didi","black");

Lady l1 = new Lady("mary",c);
Lady l2 = new Lady("linda",d);
l1.myPetEnjoy();
l2.myPetEnjoy();
}
}
------解决方案--------------------
这个是最基础的多态了
Java code
enum Noto{    MIDOLE_C,C_SHARP,B_FLAT;}class Instrument{    public void play(Noto n){        System.out.println("Instrumen.play()");    }}class Wind extends Instrument{    public void play(Noto n){        println("Wind.play()"+n);    }}public class Music{    public static void tune(Instrument i){        i.play(Noto.MIDOLE_C);    }    public static void main(String[] args){        Wind flute = new Wind();        tune(flute);    }}
  相关解决方案