为什么Parent类允许Child类在Child类中将Parent类的方法设为抽象?

时间:2017-09-25 17:16:55

标签: scala

class Parent 
{
    def m1()
    {
        System.out.println("m1 method");
    }
}

abstract class Child extends Parent
{
    def m1()
}

上面的代码成功编译,我的问题是:

为什么Parent类允许Child类将m1()方法作为抽象方法?

我们会在哪里使用这种情景?

1 个答案:

答案 0 :(得分:1)

现在,您可能希望创建父类的多个变体。现在Parent类是一个具体的类,很难实现它。因为您可以尝试将父项设为抽象,然后提供实现。但是如果在你的大代码库的几个地方使用具体类,你别无选择,只需按照以下步骤进行操作。

因此,策略是创建抽象子,如下所示

abstract class Child extends Parent
{
    def m1()
}

class SpecialChild extends Child {
    //.. some implementation of m1
}

现在我们仍然可以使用原来的孩子

child = new SpecialChild();

希望这是有道理的。