Java_82_多态(polymorphism)

package Test;
/**
 * 多态的要点
 * 多态是方法的多态,不是属性的多态(多态与属性无关)
 * 多态的存在要有3个必要条件:继承、方法重写、父类引用指向子类对象。
 * 父类引用指向子类对象后,用该父类引用笤俑子类重写的方法,此时多态就出现了。
 * 对象的强制转型处理ClassCastException
 * @author pmc
 *
 */
public class Polymorphism {
	public static void main(String[] args){
		Animal an=new Dog();//自动向上转型
		an.shout();
		an=new Animal();
		an.shout();
		an=new Cat();
		an.shout();
		Cat an2=(Cat)an;//强制向下转型
		an2.shout();
		an2.eat();
		((Cat) an).eat();
//		((Dog)an).eat();//异常java.lang.ClassCastException
	}
}
class Animal{
	public void shout(){
		System.out.println("动物叫");
	}
}
class Dog extends Animal{
	public void shout(){
		System.out.println("狗子叫");
	}
	public void eat(){
		System.out.println("吃饭");
	}
}
class Cat extends Animal{
	public void shout(){
		System.out.println("猫子叫");
	}
	public void eat(){
		System.out.println("吃饭");
	}
}
发布了136 篇原创文章 · 获赞 11 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/pmcasp/article/details/104971337