我为什么要扩展课程?

时间:2012-02-13 17:02:40

标签: java oop class object

现在我对继承和类对象感到困惑。我们可以像继承那样使用对象。 好的,这是第一个代码

public class MainForm {
    GUI g = new GUI();
    g.show();
    g.destroy();
}
class GUI {
    void show(){
        ......
    }    
    void destroy (){
        ......
    }
}

现在第二个

public class MainForm extends GUI {
    //GUI g = new GUI();
    void show();
    void destroy();
}
class GUI {
    void show(){
        ......
    }    
    void destroy (){
        ......
    }
}

两个代码都是一样的。对吗?然后 当我可以使用类的对象做同样的事情时,为什么要扩展一个类?

1 个答案:

答案 0 :(得分:2)

当您想要创建父类的多个类而不重复大量逻辑时,通常会使用继承。我可能有一个名为Animal的类,其中包含方法speak()walk()sleep()。我也可能想要Animal CatDog的特定实例。

我不是单独实现所有这三个方法,而是可以在Animal中编写它们,然后让我的其他类扩展Animal来使用它们,以及添加特定于这些类的任何方法(如{ {1}}或claw())。

这些好处减少了代码重复和对象的更好“抽象”。但是,也存在一些缺点,正如article指出的那样。重要的是要知道何时继承是有用的,何时不是。