1. 下面代码的执行结果是什么?
1 public class Cat { 2 public void talk(){ 3 System.out.println("miao"); 4 } 5 } 6 7 public class HouseCat extends Cat{ 8 public void sleep(){ 9 System.out.println("sleep"); 10 } 11 public void talk(){ 12 System.out.println("miaomiaomiao"); 13 } 14 } 15 16 public class CatShow { 17 public static void main(String[] args) { 18 new CatShow().go(); 19 } 20 21 void go(){ 22 new HouseCat().talk(); 23 ((Cat)new HouseCat()).talk(); 24 ((Cat)new HouseCat()).sleep(); 25 } 26 }
考察的知识点是 JAVA 中 子类强转为父类,实际上依然是子类,该引用只能调用父类中定义的方法和变量,,如果子类中重写了父类中的方法,,,那么在调用这个方法
的时候,,,,,将会调用子类中的这个方法。 所以最后一行代码会 编辑报错。。。。