abstract类和接口interface的联系和区别
来源:互联网 发布:周朝知乎 编辑:程序博客网 时间:2024/04/28 07:47
一,用关键字abstract类修饰的类称为abstract类(抽象类)。
abstract class A{
………….
}
特点:
1. 抽象类中可以有抽象方法和非抽象方法,但是抽象方法只允许声明不允许实现,而且不允许使用final和abstract同时修饰一个方法。
abstract class A{ abstract int min (int x,int y); int max(int x,int y){ return x>y?x:y; }}
2.抽象类不能用new运算符创建对象。如果一个非抽象类是某个类的子类,那么它必须重写父类的抽象方法,给出方法体。
abstract class A{ abstract int sum(int x,int y); int sub(int x,int y){ return x-y; }}class B extends A{ int sum(int x,int y){//子类必须重写父类的sum方法 return x+y; }}
抽象类只关心操作,即只关心方法的名字,类型以及参数,不关心这些操作是怎么实现的,即不关系方法体。设计程序时,可以把几个类的共有的轮廓,重要特征抽象成一个抽象类,不需要关心具体细节。
二,java不支持多继承的,一个类只能继承一个父类,但是java引入了接口机制,一个类可以实现多个接口。
interface A{ public final int a=10; public abstract void sum(int x,int y); public abstract void sub(int x,int y);}class B implements A{//使用implements来实现A接口 void sum(int x,int y){ return x+y; } void sub(int x,int y){//必须重写A接口的所有抽象方法 return x-y; } }
特点:
1.接口体类只能有常量和抽象方法,即方法都是等待实现的方法。
2,一个类实现了某个接口,必须重写该接口的所有方法。
3.多个类可以实现同一个接口,一个类可以实现多个接口。
三,比较
1.接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
2.一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口),人是根源,吃饭,走路时接口。
3.一个类可以实现多个接口,因为一个对象的动作有很多,但是只能继承一个类,因为一个对象的根,本质只有一个。
4.接口中所有的方法都是抽象的,没有一个有程序体。抽象类是可以有非抽象方法。抽象类和接口中的抽象方法都不实现。
- abstract类和接口interface的联系和区别
- interface接口和abstract抽象类的区别和联系
- abstract 和interface的联系区别。
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract class)和接口(interface)的区别?
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract)和接口(interface)的区别
- 抽象类(abstract)和接口(interface)的区别
- 什么是接口?接口有哪些好处,抽象类(abstract)和接口(interface)的区别
- abstract类和interface的区别
- abstract类和interface的区别
- abstract类 和 interface 的区别
- C# abstract类 和 interface 的 区别
- java abstract类和interface的区别
- [Java] abstract类和interface的区别
- json字符串解析
- HDU-1165-Eddy's research II
- 百度地图坐标的转化方式,可以方便和其他平台转化
- (6)unity入门,脚本
- 【bzoj1562】 NOI2009 变换序列 二分图匹配
- abstract类和接口interface的联系和区别
- DELPHI 把数据库中的数据转换成XML格式
- Strictftp关键字的作用
- 嵌入式系统基础知识------之嵌入式微处理器体系结构(1.2)
- 使用sharesdk 进行第三方分享的流程
- Java基础---序列化Serializable
- 音乐还在陪伴我
- WebStorm快捷键收集
- activiti-explore(activiti5.17) 替换数据库