抽象类和接口区别

深碍√TFBOYSˉ_ 2023-05-31 02:35 148阅读 0赞

一、抽象类

1、概念:就将一些事物的共性进行抽象

如:麻雀、燕子都可以归为鸟;奔驰、宝马都可以归为车

2、那抽象类与普通类有什么区别呢?

别傻傻的纠结半天,唯一区别就是抽象类用abstract关键字修饰,并且抽象类不可以实例化;其他属性和普通类都是一样的。

3、抽象类的实现

抽象类定义了方法体(即方法体用abstract声明),子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。

4、其他

抽象类有构造器(但不能被重写);修饰符可以是public、protected、default;可以运行main()方法;可以继承一个类和实现多个方法。

二、接口

1、理解:“对修改封闭,对扩展开发”

接口的作用:
接口的用途不但多,而且是非常必要。这就是为什么我们为什么老是提“面向接口编程”的概念。
你现在对其理解不深没有关系,只是在实际中先用。等积累到一定程度就知道接口的好处了。
就拿你上面的例子说接口的用途之一,那就是“多态”。这个词你应该不陌生吧,相信老师应该和你们说过吧
VideoCard vc=new Elsa();
//VideoCard vc=new Colourful();
vc.display();
这里vc 可以new Elsa(); 可以new Colourful(); 可以实现不同的功能。换句话说一会可以拿它当锤子使用,一会
拿他当电锯使用,前提是他们实现了同样的接口。只要你接口的方法定义没有变,针对外部而言 ,你的具体实现外部是不
感知的。所以,这就为你以后程序的扩展性提供基础。“对修改封闭,对扩展开发”。
前面是接口的一个基本用途,规定子类的行为。更为广阔的用途是接口为其他人使用者提供什么用途。模块和模块之间的解耦
就看你的接口设计的是不是合理,是不是好用。这就是框架设计师。
为什么要用接口 :用于处理多变的情况。
接口在实际开发过程中最大好处是,你可以按照设计,先把接口写好,然后分配大伙干活的时候,告诉a们去用写好的接口去实现他们的具体功能,而告诉b们,去写那些已经写好但是没有具体的代码的接口,这样可以提高工作效率。并且底层和应用也通过接口做了一个很明显的分层。

2、接口的实现

子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现(因为接口是完全抽象的,接口中根本就不存在方法体的实现)

3、其他

接口没有构造器;修饰符只能是public(接口要被实现,必须公开);java8之前不可以,但java8之后可以运行main()方法;**可以继承一个或多个接口。**如果你往接口中添加方法,那么你必须改变实现该接口的类。

发表评论

表情:
评论列表 (有 0 条评论,148人围观)

还没有评论,来说两句吧...

相关阅读

    相关 抽象接口区别

    一、抽象类 1、概念:就将一些事物的共性进行抽象 如:麻雀、燕子都可以归为鸟;奔驰、宝马都可以归为车 2、那抽象类与普通类有什么区别呢? 别傻傻的纠结半天,

    相关 抽象接口区别

    抽象类的特点: 抽象类一般在父类中使用,而它的子类实现父类中的抽象方法; 如果父类中有一个或多个抽象方法,那么父类必须为抽象类; 抽象类里的抽象方法没有任何

    相关 抽象接口区别

    相同点 都代表系统的抽象层,有助于系统的松耦合; 都不能被实例化; 都能包含抽象方法; 从JDK8开始,接口中也可以像抽象类一样,提供默认的实现(方法

    相关 接口抽象区别

        接口是对动作的抽象,这个对象能做什么。抽象类是对根源的抽象,这个对象是什么(一个类只能继承一个类(正如人不可能同时是生物和非生物),但可以实现多个接口(吃饭接口、走路接