【Java】抽象类和接口的区别
来源:互联网 发布:python里的三引号 编辑:程序博客网 时间:2024/06/16 21:51
a)概念
1、Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。
2、抽象方法即只有功能声明,没有功能主体实现的方法。
3、抽象类用来描述一种类型应该具备的基本特征与功能,例如:狼和狗共性都是犬科,犬科就是抽象出来的概念。而犬科描述了所有的犬科子类应具备的属性和行为。
4、具体如何去完成这些行为由子类通过方法重写来完成,如:狼和狗都有吼叫的方法,可是吼叫内容方式不同。所以抽象出来的犬科虽然有吼叫功能,但是并不明确吼叫的细节。
b)抽象定义格式
使用abstract修饰抽象类与抽象方法//abstract在class前修饰类//abstract在访问权限后,返回值类型前修饰方法,方法没有方法体。abstract class Person {public abstract void eat();}
c)抽象类&抽象方法的使用
二、接口抽象类无法直接创建对象,只能被子类继承后,创建子类对象。
1、子类定义时继承抽象类
抽象类是事物的描述,子类需要继承父类完成最终的功能实现细节(即重写方法,完成方法体)。将一个抽象方法重写的过程也叫实现方法的过程。
2、子类定义后创建实例对象
在定义好子类后,可以直接创建对象。在所有使用子类的地方可以传入子类对象,在所有使用父类的地方也可以传入子类对象,因为属性与方法在子父类中都是相同的。
a)概念
1、接口是功能的集合,是比抽象类更为抽象的类,同样是一种数据类型。
2、接口的更为抽象表现为其内的所有方法均为抽象方法。同时不定义普通的成员变量。
3、使用时,接口同样不能创建对象,只能在定义时实现接口。接口只能实现,不能继承。实现的动作类似继承,只是关键字不同,实现使用implements。
4、Java支持继承一个类的同时实现多个接口。
5、像父类一样,所有定义接口的地方,也可以传入其实现类对象(子类对象)。
b)定义格式
使用interface代替了原来的class,其他步骤与定义类相同。
<strong><span style="font-size:18px;">public interface 接口名 {//抽象方法1; //抽象方法2; //抽象方法3;}public interface Careable {public abstract void carCare();}</span></strong>c)使用格式
在具体定义类时实现接口,必须重写(实现)所有抽象方法
或者定义抽象类,可以留下若干抽象方法不实现。
class 类 implements 接口1,接口2{}
三、区别如:
class Tesla implements Careable {public void carCare() {System.out.println(“不去汽车保养店,去专业Tesla保养店!”);}}
1、Java支持一个类同时实现多个接口(接口是干爹,抽象类是亲爹,亲爹只能有一个,而干爹可以有很多),类可以在继承一个类的同时,实现多个接口。
2、接口中的成员是固定的:
变量修饰符为:public static final
方法修饰符为:public abstract(所以重写接口方法时,必须使用public)
即接口是更加抽象的抽象类,她的成员方法必须全部为抽象方法。
3、在意义上说,抽象类的方法是指一类相似的对象共有的一些功能,而接口是指额外的一些功能。
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- java抽象类和接口的区别
- Java 抽象类和接口的区别
- java接口和抽象类的区别
- java接口和抽象类的区别
- JAVA 抽象类和接口的区别
- Java抽象类和接口的区别
- java接口和抽象类的区别
- java抽象类和接口的区别
- java接口和抽象类的区别
- java接口和抽象类的区别
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- java抽象类和接口的区别
- Xcode7 插件制作入门
- 移动端a链接按下背景变色js
- 大浪淘沙面试题
- linux无锁话编程,原子
- 教你如何使用Android onActivityResult
- 【Java】抽象类和接口的区别
- 【软件工程】4.UML时序图
- PAT (Basic Level)1032. 挖掘机技术哪家强
- 微信token失败原因
- HttpClient使用详解
- 太原网络营销师揭秘百度竞价(SEM)如何判断关键词的好坏?
- 高通平台 lcd driver 调试小结
- 1030. Travel Plan (30)寻找最短路径
- 解析json之net.sf.json