[英]How can I create an array of and Abstract class such that I can initialize it to a specific non-abstract class (java)
[英]Can a non-abstract class be extended (inherited from) in Java?
该类之前是否需要使用abstract关键字? 或者它是否需要未实现的(抽象)方法? 可以延长任何正常班级吗?
可以延长任何正常班级吗?
是:)除非它有最终修饰符。
是的,除非类本身被声明为final,否则所有非final的方法(静态也与其余方法有点不同)都可以被覆盖。 仅当您未在基类中提供任何实现时,才使用抽象方法。
不,它不需要有单词abstract,单词abstract只是不允许你直接创建该类的实例,如果你使用单词abstract,你只能创建扩展该抽象类的类的实例。
AbstractClass abs = new ChildClass();
是的,你可以扩展一个类,而不需要将它定义为抽象。 这意味着你将重写方法。 例如,您可以创建一个类
DifferentString extends String
然后,
public String toString()
{
return "Something different";
}
这意味着您可以更改父类的原始行为。
参考:
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
正如其他人也说过的那样 - 但如果你可以帮助它,最好避免这样做,因为你最终可以更容易地得到所谓的脆弱的基类问题。
是的,但是如果该类被标记为final,则无法扩展。
class Foo {
//some code here
}
class Boo extends Foo {
}
这里有一些概念混淆。 未实现的方法驻留在接口中,您可以实现该接口。
你可以扩展任何类,只要它不是最终的。
编辑:我的意思是说,最好在接口中放置未实现的方法。 对不起,措辞不好。 抽象类也可以有未实现的方法,尽管最终会有一个复杂而严格的层次结构。 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.