Java 没有任何实现和变量的抽象类是否有效地实现了接口?
我正在复习OOP的概念,阅读 在这里,本书将接口定义为 对象操作定义的所有签名集称为对象的接口。(临39) 抽象类为 抽象类的主要目的是为其子类定义公共接口。抽象类将其部分或全部实现推迟到子类中定义的操作;因此不能实例化抽象类。抽象类声明但未实现的操作称为抽象操作。非抽象类称为具体类。(临43) 我想知道,如果我定义一个没有任何内部数据(变量)和具体操作的抽象类,仅仅是一些抽象操作,它不就是一组签名吗?那么它不只是一个界面吗 这是我的第一个问题:Java 没有任何实现和变量的抽象类是否有效地实现了接口?,java,python,oop,inheritance,design-patterns,Java,Python,Oop,Inheritance,Design Patterns,我正在复习OOP的概念,阅读 在这里,本书将接口定义为 对象操作定义的所有签名集称为对象的接口。(临39) 抽象类为 抽象类的主要目的是为其子类定义公共接口。抽象类将其部分或全部实现推迟到子类中定义的操作;因此不能实例化抽象类。抽象类声明但未实现的操作称为抽象操作。非抽象类称为具体类。(临43) 我想知道,如果我定义一个没有任何内部数据(变量)和具体操作的抽象类,仅仅是一些抽象操作,它不就是一组签名吗?那么它不只是一个界面吗 这是我的第一个问题: 我能说一个只有抽象函数的抽象类是一个接口吗 然后
对象
的子类,因此不能只使用抽象方法生成抽象类。它总是从对象继承方法实现:hashCode()
,equals()
,toString()
,等等
是的,差不多
<>在C++中,没有特定的<代码>接口< /C> >关键字,而接口只是一个没有实现的类。C++中没有通用的基类,所以您可以真正实现一个没有实现的类。
多重继承并不是决定性的特征。Java具有某种类型的多重继承,具有称为“接口”的特殊类,这些类甚至可以具有default
方法
真正起作用的是通用基类Object
<代码>接口
是一种创建类的方法,它不是从对象继承的
我认为以下链接可能会有所帮助:这是否回答了您的问题@Hülya是的,有点像,但我的问题不是抽象类和接口是如何使用/感知的,而是如何实现的。我想用所有抽象方法编写一个抽象类是一个糟糕的设计选择。但除了糟糕的设计选择之外,它们本质上是等价的吗?再想一想,我的问题可以解释为“我们能把类型和类分开吗?”或者“类是否意味着类型?”