class Parent
{
def m1()
{
System.out.println("m1 method");
}
}
abstract class Child extends Parent
{
def m1()
}
上面的代码成功编译,我的问题是:
为什么
Parent
类允许Child
类将m1()
方法作为抽象方法?我们将在哪里使用这种方案?
最佳答案
现在,您可能想创建父类的多个变体。现在,父班是一个具体的班,要做到这一点非常困难。因为您可以尝试将父级设为抽象,然后提供实现。但是,如果在大型代码库的多个位置使用了具体类,则别无选择,只能执行以下操作。
因此,策略是创建抽象子级,其过程如下
abstract class Child extends Parent
{
def m1()
}
class SpecialChild extends Child {
//.. some implementation of m1
}
现在我们仍然可以使用原始孩子
child = new SpecialChild();
希望这是有道理的。
关于scala - 为什么Parent类允许Child类将Child类的方法抽象为Child类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46410724/