Java新手(手写笔记:实现vs扩展)

Java新手(手写笔记:实现vs扩展),java,Java,我刚开始学习Java,我一直在阅读、概述我的书《Murach的Java编程(第五版)》,并做笔记 尽管有我的笔记,我仍然对Java感到困惑。我只是想知道我写的笔记是否正确?我确实在网上寻求帮助(包括在这个论坛上的一些帖子),但我仍然不确定我是否做对了 (注:我可能需要更多的笔记帮助。我应该重复使用这个帖子,还是创建一个新主题?) 我的笔记 实现关键字用于以下内容: 继承接口(技术上称为“子接口”) 如果不希望继承所有方法和字段,则必须将其声明为抽象类 扩展关键字用于以下内容: 创建子类(如前面

我刚开始学习Java,我一直在阅读、概述我的书《Murach的Java编程(第五版)》,并做笔记

尽管有我的笔记,我仍然对Java感到困惑。我只是想知道我写的笔记是否正确?我确实在网上寻求帮助(包括在这个论坛上的一些帖子),但我仍然不确定我是否做对了

(注:我可能需要更多的笔记帮助。我应该重复使用这个帖子,还是创建一个新主题?)


我的笔记 实现关键字用于以下内容:

  • 继承接口(技术上称为“子接口”)
  • 如果不希望继承所有方法和字段,则必须将其声明为抽象类
  • 扩展关键字用于以下内容:

  • 创建子类(如前面第8章所述)
  • 继承其他类(子类、子类)
  • 使用此助记符:“您实现接口并扩展类”

    1)来继承接口(技术上称为“子接口”)。

    一个接口可以扩展一个或多个其他接口。术语继承通常不适用于接口。请注意,接口不能声明任何方法和字段,只能用作标记

    2)如果不想继承所有方法和字段,则必须将其声明为抽象类。

    一个抽象类可以有一些方法的实现,可以有一些非公共字段和方法,因此它与接口有很多不同

    我建议从另一个角度来看它——接口首先声明了通信协议——因此它定义了无论实现如何都可以调用的方法。抽象类为某些方法提供了一些实现。如果您考虑到接口中的默认方法,我建议您首先避免使用它们,因为它们是为特定目的而添加的,并且在您学习时不太可能需要它们

    extends关键字用于以下内容: 1) 创建子类(如前面第8章所述)。

    创建子类和扩展接口

    2)继承其他类(子类、子类)。


    不确定与前一点有什么区别,因为子类是通过使用extends关键字的继承创建的。因此,我将把它合并到语句中。

    一个例子可能会更清楚地理解这个概念

    等级车{
    公共抽象字符串getMake();
    公共抽象字符串getModel();
    }
    接口报警系统{
    公共警报(布尔状态);
    }
    
    现在,您可以创建如下类:

    class MyCar扩展了汽车报警系统{
    私有布尔恐慌=假;
    公共字符串getMake(){return“Ford”;}
    公共字符串getModel(){return panic?“Loud Mustang”:“Mustang”};
    public void setPanicAlarm(布尔状态){panic=state;}
    }
    
    你可以说“我的车是一辆车”。“是一个”的概念很重要。使用
    extends
    与说“是一个”相同。不过,说“我的车是一个报警系统”是没有意义的。这是一种“有”的关系。说“我的车是一辆车,有一个报警系统”是有道理的

    在构建类时,问问自己该类是否是其超类(它扩展的超类)的实例

    在这个例子中,你可以想象有其他没有报警系统的汽车,这很好。有些没有

    因此,也许写笔记的更好方法是:

    implements关键字用于以下内容:

    • 实现接口以向类中添加功能
    extends关键字用于以下内容:

    • 创建现有类的子类,以便在继承父类的所有功能的同时扩展和自定义它们

    关于implements关键字的注释都是错误的或措辞怪异:1。子接口应该是什么?2.声明类抽象与不希望“继承所有方法和字段”无关。扩展类时,始终继承所有内容。3.还有,为什么你突然谈论“抽象类”,而这应该是关于接口而不是类的呢?)1)继承接口(从技术上说是“子接口”)。不,当你继承一个接口时,你就扩展了<代码>实现用于实现接口。“2)如果不想继承所有方法和字段,则必须将其声明为抽象类。”,在继承它时无论如何都要这样做。“1)创建子类(如前面第8章所述)。”,是。“2)继承其他类(子类、子类)。”,是的,现在开始变得更有意义了。非常感谢。使用“是一个”和“拥有它”很有意义。我想我现在真的明白了;非常感谢D