随着我继续扩展OOP编程知识,将所有概念重新结合在一起变得越来越困难。另外,我知道什么是对象,类,接口和继承。但是,我看不到“大局”。
对象体现了特定的概念(类),并将特定的数据存储到该类。更具体地说,它是一个类的实例。
一个类在其类的所有对象(“模板”)中定义了一组通用的属性和行为
接口本质上是方法标题的待办事项列表。它期望其子级实现这些抽象方法。这样做是为了尝试创建一种在不相关的类中做某事的标准方式(例如:Comparable中的compareTo())
继承允许子类通过添加更多功能和行为来扩展对象的设计空间,同时仍保留超类的功能和行为。
所有这些概念都会影响对象与类交互的方式,但是我看不到继承和接口与对象有什么关系。这是一个相当概念性的问题,但是“全局”到底是什么?所有这些概念如何影响类与对象之间的关系?
答案 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中可以进行多重继承。即。一个接口可以扩展多个接口/实现多个接口。
无法创建接口对象,因为它不完整。
接口方法应设为非静态的,因为它不完整,并且应重写以使其完整。如果接口方法是静态的,则不能覆盖它,因为仅存在一个静态成员副本,并且该副本在类加载期间加载。