- //做这种题要将子类中隐含的继承自父类的内容先补齐,
- //然后再看方法的调用,存在多层继承时,注意调用方法的查找范围。
- class DuoTaiTest3
- {
- public static void main(String[] args)
- {
- A a = new B();
- a.show();// 输出:爱
- B b = new C();//这里创建的是类C的对象
- b.show();// 输出: 你
- }
- }
- class A
- {
- public void show()
- {
- show2();
- }
- public void show2()
- {
- System.out.println("我");
- }
- }
- class B extends A
- {
- /*
- public void show()
- {
- show2();
- }
- */
- public void show2()
- {
- System.out.println("爱");
- }
- }
- class C extends B
- {
- public void show()
- {
- super.show();//这里b.show()调用父类B的show方法,而类B的show方法继承自类A,
- //所以b.show()调用了show2(),而这里的show2不是类A中的,而是类C中的;
- //若C类中没有重写show2,则调用其父类B中的,依次向上查找。
- }
- public void show2()
- {
- System.out.println("你");
- }
- }
复制代码 |
|