我的设置类似于您在下面看到的设置。我刚刚注意到“YourClass”实际上是从“MyClass”实现了我的一些逻辑。啊。我试图在“YourClass”中抛出一个@Override上面的setupViews(),但它不会编译声明,“DataManagerActivity类型的方法setupViews()必须覆盖超类方法”
代码已更改。这是一个例子。我输入了错误的东西。同样的问题。如何保持扩展MyClass的YourClass不从MyClass实现setupViews()?
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() {
....
}
}
答案 0 :(得分:2)
@Override
指示编译器失败,除非它下面的方法覆盖超类中的方法(你来自extend
的方法)或它实现的interface
之一。
setupViews()
的原因是private
中的MyClass
,因此无法从任何子类访问或覆盖它。
如果这是您想要的,那么您希望您的方法为protected
- 在其定义的类的子类中可访问和可覆盖,但不能从外部访问。
编辑2':所以底线:
如果您希望setupViews()
在子类中可以覆盖(例如YourClass
),请将其设为protected
。否则,请将其设为private
。
答案 1 :(得分:1)
我想你想用
this.setupViews();