为什么父类允许Child类在Child类中将父类的方法设置为抽象类?
问题描述:
class Parent
{
def m1()
{
System.out.println("m1 method");
}
}
abstract class Child extends Parent
{
def m1()
}
上面的代码编译成功地,我的问题是:为什么父类允许Child类在Child类中将父类的方法设置为抽象类?
为什么Parent
类允许Child
类,使m1()
方法,抽象方法?
我们在哪里使用这种场景?
答
现在,它可以发生,你想创建父类的多个变体。现在,父类是一个具体的类,它很难实现这一点。因为您可以尝试将父项作为抽象,然后提供实现。但是如果在你的大代码库的几个地方使用了具体的类,那么你别无选择,只能按照以下步骤行事。
因此,策略是创建抽象子不言而喻如下
abstract class Child extends Parent
{
def m1()
}
class SpecialChild extends Child {
//.. some implementation of m1
}
现在我们仍然可以使用原来的孩子
child = new SpecialChild();
希望这是有道理的。
让抽象类扩展一个具体类很奇怪。这是可能做到的其中一种情况,但你可能不应该这样做。 – puhlen