inheritance - 子类可以覆盖一个具体方法并将其声明为抽象吗?
问题描述
这不会产生编译时错误。所以这可以被认为是一种覆盖?
public class ClassA{
public void metod(){
}
}
public abstract class ClassB extends ClassA{
@Override
public abstract void metod();
}
解决方案
是的!
子类可以覆盖具体方法并将其声明为抽象的。但是,子类现在是抽象的(因为它至少有一个抽象方法),子类不能再次实例化。它需要再次被继承才能发挥更大的作用。反过来,它的子类将重新实现metod
这个最新子类可实例化的方法。
推荐阅读
- java - Resume activity after close it with back button
- css - Admin-Ajax 正在减慢我的 Wordpress 网站速度
- php - php docBlock - 将类型放入@param,如果它导致异常?
- android - 安装 cloud_firestore 依赖项后 Android 构建错误
- html - 如何为css网格元素添加边框半径
- mql4 - How to get the number of decimal places for every Symbol() price
- python - Unabe 迁移到 herokuapp:没有名为 'django-heroku' 的模块
- java - 如何解决“指定的 Gradle 发行版‘https://services.gradle.org/distributions/gradle-4.10.1-all.zip’不存在。”
- python - Python 3 内置文件写入方法似乎不适用于 '\n' 换行
- python - 使用 python 进行 Azure AD 验证