0
点赞
收藏
分享

微信扫一扫

Java抽象类加接口实现多态

君之言之 2023-05-25 阅读 72


package com.abc;
abstract class Pet{
	private String name;
	public abstract void cry();
	public void SetName(String n) {
		name = n;
	}
	
}
interface Cry{
	public abstract void cry_in(); 
}
class Dog extends Pet implements Cry{
	private String furColor;
    Dog(String n, String c) {
		SetName(n);
		furColor = c;
	}
    public void cry() {
    	System.out.println("汪汪汪");
    }
    public void cry_in() {
    	System.out.println("汪汪汪");
    }
}
class Cat extends Pet implements Cry{
	private String eyesColor;
    Cat(String n, String c) {
		SetName(n);
		eyesColor = c;
	}
    public void cry() {
    	System.out.println("喵喵喵");
    }
    public void cry_in() {
    	System.out.println("喵喵喵");
    }
}
class Girl{
	private String name;
	private Pet pet;
	Girl(String n, Pet p){
		name = n;
		pet = p;
	}
	public void myPetCry() {
		pet.cry();
	}
	public void myPetCry_in() {
		Cry c = (Cry)pet;
		c.cry_in();
	}
}
public class TestAbstract {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Cat c = new Cat("Tom", "gray");
        Dog b = new Dog("Kaier", "black");
        Girl l1 = new Girl("Rose", c);
        Girl l2 = new Girl("Grase", b);
        l1.myPetCry();
        l2.myPetCry();
        l1.myPetCry_in();
        l2.myPetCry_in();
	}

}



举报

相关推荐

0 条评论