1接口与抽象类的简介。
2 接口与抽象类的相同点。
3接口与抽象类的不同,与区别。
1接口与抽象类的简介:抽象体:当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但是这些方法的实现方式是无法确定的,Java中允许在定义方法时不写方法体。不包含方法体的方法为抽象方法,抽象方法必须用abstract关键字来修饰。
abstract void 方法名();//定义抽象方法。
包含抽象方法的类为抽象类,同理也要abstract来修饰,具体示例 如下
abstract class 类名{
abstract void 方法名()
}
简单来说,假设现在要定义一个人的类,类中有一个getsex()方法来获取这个人的性别但是由于人有男女之分。所以你不确定这个人是男生还是女生,所以这个方法得用抽象方法,人的类为抽象类。
接口:如果一个抽象类中所有方法都是抽象方法,则可将这个类用另外一种方式来定义,即接口。接口是由常量和抽象方法组成的特殊类,是抽象类的进一步抽象。定义·格式如下:
interface 接口名{
void 抽象方法();
}
其中常量是用"public static final"修饰,在引用该常量时候能满足关键字static的规则,此外由于用final修饰所以产量不能随意被更改,也不能用private修饰。抽象方法是用public static修饰的。
2 接口与抽象类的相同点:
首先由于抽象类 接口中方法都是抽象的,所以两者都没有方法体。其次由于该类或接口都是抽象的无法用方法准确描述所以俩个不能对象实例化(即不能new 类名()),最后,如果要调用抽象方法必须穿建一个抽象类的子类(该类不能是抽象的),在子类中对抽象类中的方法进行重写。接口与其类似,也需创建一个类在该类中对抽象类中的方法进行重写。
3接口与抽象类的不同点(区别):
简单来讲接口是对事物的局部行为进行抽象,而抽象类是对事物整体进行抽象。比如飞机和鸟都会飞,飞只是一个行为上的特性所以用接口,所以设计个接口叫Fly包含方法fly()
interface Fly{ void fly(); }
飞机和鸟是整个事物的概念,比如战斗机和直升机本质上都是都是飞机都可以飞,所以需要设计个抽象类叫做Airplane来实现Fly这一接口 。
public abstract class Airplane implement Fly{
void 其他方法名();
}
接着抽象类与类之间的关系是继承的关系即用到extends 而接口与类之间 实行的关系即类名implement 接口名。一个类可以实现多个接口既可以类名 implement 接口名1,接口名2
而类却不可多个继承,但是类可以传递继承,即A extends B extends C。此时C就间接继承了A。另 接口与接口用的也是继承,一个类在继承另一个类的同时也可以实现接口,此时 extends 必须在implement 前面如
class Bire extends Pet implement Fly{
......
}
由于本人刚学习Java不就,对于这些知识点理解不是很全面,难免有遗漏或者错误的地方,希望大佬们多加指正。