抽象类概述:
1.该类的概念是抽象的,如形状,生物这些概念,无法实例化一个对象,所以抽象类是不允许创建对象的;
2.对于这种类,这里面的大多数方法如果不通过继承的方式对类里面的方法进行重写的话,是无法执行的,比如一个形状类,既然有形状,就因该有显示名字方法,计算面积方法,在一些特定的坐标系上还应该具有画出该形状的方法,但是这些无法实现;再比如对生物而言,有叫,吃东西,爬行,作息等方法,对生物这么一个抽象类,调用叫的方法的时候发出什么声音?所以抽象类不允许创建实力对象,因为即使创建了,他的方法也是无法执行的;
抽象方法与特殊方法区别
3.第二点介绍了抽象类里面的有些方法有其特殊性,这种特殊方法叫做抽象方法,那么剩下的我们就叫普通方法。如何理解?我们假设牛这个类继承了生物类,那么生物有出生时间,我们可以在生物类里面进行这个方法的定义,创建牛这个类的对象的时候就直接给出出生日期,调用父类的记录出生日期的方法就行了,这种方法到任何一个子类当中,都可以不用被重写就能够直接使用,那么我们将这种方法为普通方法。但是对于牛叫声等方法直接调用父类中生物的叫声方法是无法执行的,我们就把这种方法叫做抽象方法。
只要含有抽象方法的类,都叫做抽象类,很明显通过上面的介绍,抽象类既可以包含抽象方法,也可以包含普通方法。
书写格式
public abstract class 类名
只要这个类里面有抽象方法,就需要在class前面加上abstract关键字
抽象类继承说明
只要注明的是抽象类加上的abstract关键字,那么它就是一个抽象类。需要注意的一点是,在一个抽象类中可能有零个或者多个抽象方法,特别要注意的是,当抽象方法的个数为零的时候,只要标明的这个类是抽象类,那么这个类依然是一个抽象类。
如果一个类是抽象类的子类,那么这个类有可能是抽象类,也有可能不是抽象类,对此,我们应该如何进行一个区分呢?如果这个类完成了对它所继承的抽象类中所有的抽象方法的重写,那么这个类它就不再是一个抽象类了,如果没有完成所有的抽象方法的重写,这个子类依然属于抽象类的范畴。
接口
下面我们来介绍接口,接口和抽象类之间有很大的相似性。
1.首先接口的关键字是 interface,和抽象类的class有区别。
2.在我们刚刚介绍的抽象类里面,抽象类既可以包含普通方法,也可以包含抽象方法,但是接口中只能含有抽象方法,而且所有的方法都是public属性的。
从一个父类到一个子类的关系,我们把它叫做继承,如果一个接口和一个内相连接,我们称之为这个类,对这个接口进行了实现,关键词是implement。
这是一个接口
这是一个接口的实现
从图片给出的示例来看,其语法格式和类的继承有一些相似,但是接口是可以有多个实现的,这和类只能进行单继承有所区别。
和抽象类一样,接口里面的方法都必须被重写。
应用
由于一个类可以实现对多个接口的实现,所以接口有时候也被用来解决多继承。
另外接口有时候还被用于做一个统一的标准,比如要做一个学生信息系统,如果把这个系统中的不同功能分给不同的人来做,没有一个强制化的标准,组合在一起的时候就会千奇百怪,那么我们可以给出一个学生接口,学生接口中所有的方法都需要被重写,那么不同人在实现这个学生系统的时候,就能够做到一个标准的统一。
最后接口也是不能被实例化的。
标签:一个,重写,接口,抽象,抽象类,方法,比较 From: https://www.cnblogs.com/Elisabethearth/p/18550817