Lar*_*rsH 5 java android abstract-class packages
我有这个抽象的超类:
public abstract class MediaListActivity extends Activity {
...
abstract void launchMedia(MediaFile mediaFile);
}
Run Code Online (Sandbox Code Playgroud)
和具体的子类:
public class VideoListActivity extends MediaListActivity {
...
void launchMedia(MediaFile mediaFile) {
// TODO: implement launchMedia()
}
}
Run Code Online (Sandbox Code Playgroud)
在VideoListActivity子类的第一行,Android Studio会给出错误
类'VideoListActivity'必须被声明为abstract或在'MediaListActivity'中实现抽象方法'launchMedia(MediaFile)'
我明白为什么会这样.但确实如此!不是吗?我检查过签名是否匹配; 我已经尝试过Option + Return来让IDE建议修复; 什么都行不通
这只是Android Studio的一个错误吗?或者我做错了什么?
现在碰巧这些类在不同的包中:子类VideoListActivity在"子包"中foo.bar.baz.video,而超类MediaListActivity在包中foo.bar.baz.
如果我将VideoListActivity移动到foo.bar.baz包中,则错误就会消失.但是我有几个这些具体的子类,我不想把顶级包与它们混为一谈:我喜欢它们组织成它们的子包.我该怎么做才能消除这个错误(假设它甚至是必要的)?
答案是确保该方法的实现launchMedia()可以在其包外部访问:即它必须是protectedor public。我以为我已经尝试过,但我可能一直在寻找错误的方法。不管怎样,这会让错误消失。
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |