不太明白abstract class 和 interface 有什么用,谁来讲讲。。。
发布网友
发布时间:8分钟前
我来回答
共3个回答
热心网友
时间:2024-10-02 23:11
这种东西,联系实际举例最好说明。比如说 动物, 就是一个abstract class, 人 就可以是继承这个类的一个子类。 实例化一个人类:张三。
它的作用其实应该有好几点,但主要来说,还是减少代码重用的。比如说,不管是任何动物,都会呼吸,这时只需要在abstract class里写一个breathe方法就好,这样所用动物类在不覆写该方法的情况下,都有相同的呼吸方法。当然,有时候会产生特例,例如人是高级动物,呼吸方法更复杂一下,就可以在人class里覆写出一个更为复杂地方法。
但你说你实例化出一个动物,编译器就会产生歧意,你到底是要一只猫?还是狗?还是人?,也就是抽象类无法实例化的形象说明。
你又会问,那为何要有动物这么一个类,直接声明人类,喵星,旺星不就得了么?这就涉及到多态了。
接口嘛,就是多态的主要体现,有时候,你更注重行为过程: 你通常想地更多的是如果去实现一个过程,比如呼吸。然后其实调用哪个实例的呼吸方法你不在乎,只要你确保它有这个方法可以调就行。而这个所谓的确保,就是接口。另一方面,你想到了呼吸这个方法,就会顺着思路想到很多的东西都会呼吸,而它们实现呼吸的方法都不同,要在各个不同的类中一一去写不同的方法,但都叫呼吸。比如你想到了植物,动物,等。
这也就是为什么类的层次关系 中, 通常接口在最顶层,其次会有抽象类实现它,接着是类去继承。
热心网友
时间:2024-10-02 23:11
abstract class 是一个类,但是他不必实现所有方法,这些未实现的方法需要由继承他的非虚子类实现,abstract类同样是单继承
interface 是接口,接口中的方法不可以给实现,需要由继承接口的类给予实现,一个类可以实现多个接口,用Java中,实现接口的主要意义在于,保证该类和其子类中,都有对应的方法。
热心网友
时间:2024-10-02 23:12
interface 用的比较多。abstract class相对用的少一些。
不太明白abstract class 和 interface 有什么用,谁来讲讲。。。
它的作用其实应该有好几点,但主要来说,还是减少代码重用的。比如说,不管是任何动物,都会呼吸,这时只需要在abstract class里写一个breathe方法就好,这样所用动物类在不覆写该方法的情况下,都有相同的呼吸方法。当然,有时候会产生特例,例如人是高级动物,呼吸方法更复杂一下,就可以在人class里覆写...
Load Port、SMIF
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
7. 请问Java的Interface和Abstract Class有什么区别?
interface是接口,abstract class是抽象类 主要区别:1、接口可以多重implement(实现),抽象类只能单一extends(继承)2、接口内只能是功能的定义,抽象类中可以包括功能的定义和功能的实现。3、接口字段定义默认为public static final,而抽象类的则默认为friendly。
abstract class和interface有什么区别?求解答
abstract class 类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为publicabst...
abstract class和interface的区别
二是abstract class的子类在继承它时,对非抽象方法既可以直接继承,也可以覆盖;而对抽象方法,可以选择实现,也可以通过再次声明其方法为抽象的方式,无需实现,留给其子类来实现,但此类必须也声明为抽象类。既是抽象类,当然也不能实例化。 E. abstract class是interface与Class的中介。 interface是完全抽象的,只能声明方...
C#abstract class和interface有什么区别?
1.抽象类(abstract class)抽象类是一种特殊的类,有如下的特点:.抽象方法制作声明,不包含具体的实现,可以看做是没有重写的虚方法..抽象类不能被实例化.具有其他类相同的特性..抽象类可以没有抽象方法和抽象属性,但是一旦有了抽象方法,就一定要把这个类声明为抽象类..具体派生类必须要覆盖基类的抽象...
java 中abstract class和interface有什么区别
abstract 修饰的CLASS是抽象类 抽象类(abstract class)可以有抽象方法,也可以有具体是方法,抽象类只能支持单继承 interface 接口 接口可以有抽象的方法,不存在具体的方法,接口可以多继承(多实现)如下是我以前学习的一些笔记你可以参考下 /*理解java接口定义 1.JAVA接口没有构造器 2.JAVA接口中的成员变量...
abstract class和interface有什么区别
static final 类型的,并且默认即为 public static final 类型。4、书写规范不同:一个类可以实现多个接口,用逗号隔开,但只能继承一个抽象类,接口不可以实现接口,但可以继承接口,并且可以继承多个接口,用逗号隔开。参考资料来源:百度百科-interface 参考资料来源:百度百科-abstract(抽象修饰符)
abstract class和interface的使用场景分别是什么?
既然open close和alarm属于两个不同的概念 根据ISP原则应该把它们分别定义在代表这两个概念的抽象类中 定义方式有 这两个概念都使用abstract class方式定义 两个概念都使用interface方式定义 一个概念使用abstract class方式定义 另一个概念使用interface方式定义 显然 由于Java语言不支持多重继承 所以两个概念都使用abs...
java的接口和抽象类分别有什么作用?
在abstract class方式中,Demo可以有自己的数据成员,也可以有非 abstract的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final 的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的 abstract class。 从...
接口和抽象类的区别
在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract class。 从编程...