类 A 为 基类
类 B 继承与类 A
类 C 继承与类 B
同时三个类中都有方法f
如何通过类 C 的对象访问 类 A 的方法???
这个问题非常容易使人产生误导为 : super.super.f();
正确的方法为:用子类对象访问基类方法.
将方法声明为static 就可以实现 子类对象访问基类方法
代码实现:
1
class
A
{
2![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
static void f()
{
3
System.out.println("hello,A");
4
}
5![](/Images/OutliningIndicators/InBlock.gif)
6
}
7![](/Images/OutliningIndicators/None.gif)
8![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
class
B
extends
A
{
9![](/Images/OutliningIndicators/InBlock.gif)
10![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
static void f()
{
11
System.out.println("hello,B");
12
}
13![](/Images/OutliningIndicators/InBlock.gif)
14
}
15![](/Images/OutliningIndicators/None.gif)
16![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
class
TestA
{
17![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
public static void main(String[] args)
{
18
B b = new B();
19
b.f(); //JDK1.4 中结果输出 “hello,B”
20
A a = new B();
21
a.f();//JDK1.4 中结果输出 “hello,A”
22
}
23
}
24![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
2
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)