假设我有以下两个类
public class alpha {
public alpha(){
//some logic
}
public void alphaMethod1(){
//some logic
}
}
public class beta extends alpha {
public beta(){
//some logic
}
public void alphaMethod1(){
//some logic
}
}
public class Test extends beta
{
public static void main(String[] args)
{
beta obj = new beta();
obj.alphaMethod1();// Here I want to call the method from class alpha.
}
}
如果我初始化一个beta类型的新对象,我如何执行在类alpha而不是beta中找到的alphamethod1
逻辑?我能不能只使用super().alphaMethod1()
<-我想知道这是否可能。
Eclipse IDE中的Autotype让我可以选择从类alpha
或类beta
中选择alphamethod1
。
发布于 2011-08-01 17:39:49
您可以执行以下操作:
super.alphaMethod1();
注意,super
是对父类的引用,而super()
是父类的构造函数。
发布于 2011-08-01 17:32:56
只需使用super.alphaMethod1();
请参阅super keyword in java
发布于 2013-09-21 23:08:44
你不能通过使用测试版的对象来调用alpha的alphaMethod1(),但是你有两种解决方案:
解决方案1:从测试版的alphaMethod1()
调用alpha的alphaMethod1()
class Beta extends Alpha
{
public void alphaMethod1()
{
super.alphaMethod1();
}
}
或来自任何其他Beta方法,如:
class Beta extends Alpha
{
public void foo()
{
super.alphaMethod1();
}
}
class Test extends Beta
{
public static void main(String[] args)
{
Beta beta = new Beta();
beta.foo();
}
}
解决方案2:创建alpha的对象并调用alpha的alphaMethod1()
class Test extends Beta
{
public static void main(String[] args)
{
Alpha alpha = new Alpha();
alpha.alphaMethod1();
}
}
https://stackoverflow.com/questions/6896504
复制相似问题