一、下边的程序运行结果是什么?你如何解释会得到这样的输出? 计算机是不会出错的,之所以得 到这样的运行结果也是有原因的, 那么从这些运行结果中,你能总 结出Java的哪些语法特性?
请务必动脑总结,然后修改或编写一些代码进行测试,验证自己的想法,最后再看 后面的PPT给出的结论。
结果预测:
一共输出五个,从上到下分别是输出100,200,200,200,201。
调试结果截图:
分析:
如果子类被当作父类使用,则通过子类访问的字段是父类的。
二、动手动脑
1 package lianxi; 2 class A 3 { 4 public String toString () 5 { 6 return "haha"; 7 } 8 } 9 public class test 10 { 11 public static void main(String[] args) 12 { 13 System.out.println(new A()); 14 } 15 }
调试结果截图:
分析:
当任何一个对象与一个String对象,连接时,会隐式地调用其toString()方法,默认情况下,此方法返回“类名 @ + hashCode”。为了返回有意义的信息,子类可以重写toString()方法。
三、请自行编写代码测试(动手动脑):
1 class A 2 { 3 public void tt() 4 { 5 System.out.println("父类"); 6 } 7 } 8 class B extends A 9 { 10 public void tt() 11 { 12 super.tt(); 13 System.out.println("子类"); 14 } 15 } 16 public class test 17 { 18 public static void main(String[] args) 19 { 20 B b=new B(); 21 b.tt(); 22 } 23 }
运行结果截图:
分析:
在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。