Android @用我自己的方法重写?
我有一个类似于您在下面看到的设置。我刚刚注意到“YourClass”实际上实现了“MyClass”中的一些逻辑。我试图在“YourClass”中的setupViews()上方抛出一个@Override,但它无法编译,说明“DataManagerActivity类型的方法setupViews()必须重写一个超类方法” 代码已更改。这是一个例子。我只是打错了。同样的问题。我如何让您的类从MyClass实现setupViews()扩展MyClassAndroid @用我自己的方法重写?,android,class,methods,overriding,super,Android,Class,Methods,Overriding,Super,我有一个类似于您在下面看到的设置。我刚刚注意到“YourClass”实际上实现了“MyClass”中的一些逻辑。我试图在“YourClass”中的setupViews()上方抛出一个@Override,但它无法编译,说明“DataManagerActivity类型的方法setupViews()必须重写一个超类方法” 代码已更改。这是一个例子。我只是打错了。同样的问题。我如何让您的类从MyClass实现setupViews()扩展MyClass public class MyClass exten
public class MyClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setupViews();
...
}
private void setupViews() {
....
}
}
public class YourClass extends MyClass {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setupViews();
...
}
private void setupViews() {
....
}
}
@Override
指示编译器失败,除非它下面的方法重写了超类中的方法(您从中扩展的方法)或它实现的接口之一
编辑:对不起,我可能误解了你的意思。无法重写setupview()
的原因是它在MyClass
中是private
,因此无法从任何子类访问或重写它
如果这是您想要的,那么您希望您的方法受到保护
——如中所示,在定义它的类的子类中是可访问和可重写的,但不能从外部访问
编辑2”:所以底线是:
如果希望
setupview()
在子类(例如YourClass
)中可重写,请将其设置为受保护的
。否则,将其设为私有@Override
指示编译器失败,除非它下面的方法重写超类中的一个方法(您从中扩展的方法)或它实现的一个接口
编辑:对不起,我可能误解了你的意思。无法重写setupview()
的原因是它在MyClass
中是private
,因此无法从任何子类访问或重写它
如果这是您想要的,那么您希望您的方法受到保护
——如中所示,在定义它的类的子类中是可访问和可重写的,但不能从外部访问
编辑2”:所以底线是:
如果希望setupview()
在子类(例如YourClass
)中可重写,请将其设置为受保护的
。否则,请将其设置为私有我想您应该使用
this.setupview()代码>我想你想用
this.setupview()代码>也是这样,但他提到的错误实际上是覆盖了私有setupview()
:)很高兴我能提供帮助。那么接受吗?:)谢谢你的帮助。问题是这两者都是“私人的”。但是在MyClass中有if(true){Toast.maketoast}逻辑,它显示在MyClass和YourClass中。你班上既没有逻辑也没有美味的吐司/me=困惑。我不在乎它是否可重写,但我绝对不希望它在我的子类中实现它:)@Dan受保护的方法也可以由同一个包中的类访问。这也是,但他提到的错误实际上是重写了私有setupview()
:)很高兴我能提供帮助。那么接受吗?:)谢谢你的帮助。问题是这两者都是“私人的”。但是在MyClass中有if(true){Toast.maketoast}逻辑,它显示在MyClass和YourClass中。你班上既没有逻辑也没有美味的吐司/me=困惑。我不在乎它是否可重写,但我绝对不希望它在我的子类中实现它:)@Dan受保护的方法也可以被同一包中的类访问。谢谢,谢谢,谢谢!无论我试图在哪里放置@Override,它都告诉我必须重写一个超类方法。我无法让“YourClass”停止实现“MyClass”setupview()。这很好用!谢谢,谢谢,谢谢!!无论我试图在哪里放置@Override,它都告诉我必须重写一个超类方法。我无法让“YourClass”停止实现“MyClass”setupview()。这很好用!