java - 我为什么要延长类(class)?

标签 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 (){
        ......
    }
}

两个代码的作用是一样的,对吗?然后 当我可以使用类的对象执行相同操作时,为什么我应该扩展类?

最佳答案

当你想要创建一个父类的多个类,而不需要重复很多逻辑时,通常会使用继承。我可能有一个名为 Animal 的类,它具有 speak()walk()sleep() 方法。我还可能想要有 Animal 的特定实例,例如 CatDog

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

好处是减少代码重复和更好的对象“抽象”。然而,也有一些缺点,就像这个 article指出。了解继承何时有用、何时无用非常重要。

关于java - 我为什么要延长类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264635/

相关文章:

java - JComponent 未显示,paintComponent 未调用

java - CriteriaBuilder 查询在两列之间使用 Like

java - 使用JDBI获取Postgres数组数据

java - 将类的方法限制为接口(interface)的方法

php - 条件语句是否属于 php mvc 中的模型或 Controller ?

java - 我正在尝试使用 dfc 编码将 dql 查询的结果写入单独的 CSV 文件。

php - 最佳实践,覆盖 __construct() 与提供 init() 方法

c++ - 请解释此类构造函数的输出

c++ - 在类中不定义静态数组大小是不是很糟糕?--而是让它自动调整大小

java - 找不到java中以下方法的错误