抽象类vs继承
抽象类和继承是在Java等许多面向对象编程语言中发现的两个重要的面向对象概念。抽象类可以被认为是常规(具体)类的抽象版本,而继承允许新类扩展其他类。抽象类是一个不能初始化但可以扩展的类。因此,抽象类只有在编程语言支持继承的情况下才有意义。在Java中,抽象类使用Abstract关键字声明,而Extends关键字用于从(超)类继承。
什么是抽象类?
通常,抽象类,也称为抽象基类(ABC),不能被实例化(该类的实例不能被创建)。因此,抽象类只有在编程语言支持继承(通过扩展类创建子类的能力)的情况下才有意义。抽象类通常表示具有部分实现或没有实现的抽象概念或实体。因此,抽象类作为派生子类的父类,因此子类将共享父类的不完整特性,并且可以添加功能来完成它们。
抽象类可以包含抽象方法。扩展抽象类的子类可以实现这些(继承的)抽象方法。如果子类实现了所有这样的抽象方法,那么它就是一个具体的类。但如果没有,子类也会变成抽象类。这一切意味着,当程序员将一个类指定为Abstract时,她是在说这个类将是不完整的,它将有一些元素需要由继承的子类来完成。这是在两个程序员之间创建契约的好方法,它简化了软件开发中的任务。编写代码来继承的程序员需要完全遵循方法定义(当然也可以有自己的实现)。
业是什么?
继承是一个面向对象的概念,它允许新类扩展其他类。在Java编程语言中使用Extends关键字实现继承的概念。继承通过允许通过新定义的类扩展现有类的属性和行为,实质上提供了代码重用。当一个新的子类(或派生类)扩展一个超类(或父类)时,该子类将继承超类的所有属性和方法。子类可以选择性地覆盖继承自父类的行为(为方法提供新的或扩展的功能)。通常,一个子类不能扩展多个超类(例如在Java中)。因此,不能将扩展用于多重继承。为了拥有多重继承,您需要使用接口。
抽象类和继承之间的区别是什么?
抽象类通常表示抽象概念或具有部分实现或没有实现的实体。继承允许新类扩展其他类。因为,抽象类不能被实例化,您需要使用继承的概念来使用抽象类。否则,抽象类就没有任何用处。抽象类可以包含抽象方法,当类被扩展时,所有的方法(抽象的和具体的)都被继承。继承的类可以实现任何或所有方法。如果没有实现所有的抽象方法,那么该类也将成为抽象类。一个类不能从多个抽象类继承(这不是抽象类本身的特性,而是继承的限制)。
谢谢你解释其中的区别。我所有的问题都解决了。
这是网络上最好的答案,老师没有解释任何东西,没有任何意义。这就是解释概念的方法。