2. class Father{ void fatherMethod(){ System.out.println("Father Method"); } } class Son extends Father{ void sonMethod1(){ System.out.println("Son Method1"); } void sonMethod2(){ System.out.println("Son Method2"); } } public class Test1 { public static void main(String[] args) { Father f1 = new Son(); f1.fatherMethod(); Son s1 = (Son)f1; s1.fatherMethod(); s1.sonMethod1(); s1.sonMethod2(); Father f2 = new Father(); f2.fatherMethod(); } } 运行结果:
时间: 2024-03-30 20:38:37 浏览: 51
java.lang.Void 与 void的比较及使用方法介绍
运行结果为:
Father Method
Father Method
Son Method1
Son Method2
Father Method
在main方法中,先创建了一个Son对象,并通过向上转型赋值给了一个Father类型的引用f1。调用f1的fatherMethod()方法时,实际上调用的是Son类中继承自Father类的fatherMethod()方法,因此输出Father Method。
然后将f1强制转换为Son类型的引用s1,再次调用s1的fatherMethod()方法时,同样调用的是继承自Father类的fatherMethod()方法,输出Father Method。接着调用s1的sonMethod1()和sonMethod2()方法,输出Son Method1和Son Method2。
最后再创建一个Father对象f2,并调用其fatherMethod()方法,输出Father Method。
阅读全文