package jicheng;
public class free {
public void sleep() {
System.out.println("Human sleep..");
}
public static void main(String[] args) {
free h = new Male();// 向上转型
free h1 = new free();
//h.speak();此时需要向下转型,否则不能调用speak方法。
Male m = (Male) h;
m.speak();
/**Male m1 = (Male)h1;
m1.speak(); 此时会出现运行时错误,所以可以用instanceOF判断*/
System.out.println(h1 instanceof Male);
if (h1 instanceof Male){
Male m1 = (Male)h1;
m1.speak();
}
System.out.println(h instanceof Male);
if (h instanceof Male){
Male m1 = (Male)h;
m1.speak();
}
}
}
class Male extends free {
@Override
public void sleep() {
System.out.println("Male sleep..");
}
public void speak() {
System.out.println("I am Male");
}
}
Java中的向上转型与向下转型
Java继承与多态实践
最新推荐文章于 2024-08-12 10:00:00 发布
本文通过具体的Java代码示例,深入探讨了类的继承与多态性在实际编程中的应用。展示了父类与子类之间的关系,以及如何通过向上转型和向下转型实现多态调用,特别关注了实例判断和方法覆盖的细节。
1804

被折叠的 条评论
为什么被折叠?



