接口和继承如何影响Java中类与对象之间的关系?

时间:2019-02-22 02:38:18

标签: java class object inheritance interface

随着我继续扩展OOP编程知识,将所有概念重新结合在一起变得越来越困难。另外,我知道什么是对象,类,接口和继承。但是,我看不到“大局”。

对象体现了特定的概念(类),并将特定的数据存储到该类。更具体地说,它是一个类的实例。

一个类在其类的所有对象(“模板”)中定义了一组通用的属性和行为

接口本质上是方法标题的待办事项列表。它期望其子级实现这些抽象方法。这样做是为了尝试创建一种在不相关的类中做某事的标准方式(例如:Comparable中的compareTo())

继承允许子类通过添加更多功能和行为来扩展对象的设计空间,同时仍保留超类的功能和行为。

所有这些概念都会影响对象与类交互的方式,但是我看不到继承和接口与对象有什么关系。这是一个相当概念性的问题,但是“全局”到底是什么?所有这些概念如何影响类与对象之间的关系?

2 个答案:

答案 0 :(得分:1)

继承是OO概念,具有许多类型,如Single,Hybrid等。Java以Interface的方式支持Multiple继承。接口允许您在抽象级别定义行为或功能。它让孩子们去实现那些行为或功能。例如(在官方文档中给出):您可以定义Bicycle的行为,例如gearUp,gearDown,踏板,break等,并让品牌实现其样式和功能。以下是java doc链接。 https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

答案 1 :(得分:0)

简单来说,继承是获取其他类的属性/行为。为了实现继承,我们必须在JAVA中使用关键字extends。

类B扩展了类A,这意味着类B的行为将与类A相同,并且类A中的所有方法和变量也可以使用类B进行引用。即。无论A类拥有什么,B类也可以共享。

接口是类型定义块(用户定义)。抽象(不完整)类可以称为Interface。接口仅允许使用不完整的方法。为了继承接口,我们在JAVA中有一个关键字实现。如果一个类实现了一个接口,则它必定会契约。

也就是说:要么应该将实现Interface的类声明为抽象,要么是该类应该重写Interface中的方法并完成它(即提供方法主体)。

示例:

Interface Car

{ public void display(); //Incomplete Method, Method has no Implementation.

}

class B implements Car

{ public void display()

{ System.out.println(“HI”);

} }

这里的显示方法被覆盖并在类B中完成。因此,无需将类B声明为抽象。

注意:在JAVA中无法使用类进行多重继承。即。子类可以扩展或只有一个父类。

使用接口在JAVA中可以进行多重继承。即。一个接口可以扩展多个接口/实现多个接口。

无法创建接口对象,因为它不完整。

接口方法应设为非静态的,因为它不完整,并且应重写以使其完整。如果接口方法是静态的,则不能覆盖它,因为仅存在一个静态成员副本,并且该副本在类加载期间加载。