目录
抽象类
抽象类可以理解为由一些具体对象抽象为每个群体再抽象为一个物种。如下图所示:
学生类和老师类就是由具体的对象,例如小红、小强同学,王老师、张老师等抽象来的,人类就是最终的抽象类。
具体对象——>类——>抽象类
抽象类的特点:
1.抽象类和抽象方法必须使用abstract关键字修饰
public abstract class 类名{}
public abstract 返回值类型 方法名();
2.抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
3.抽象类不能实例化,但是可以通过多态的方式创建子类对象
4.抽象类的子类 要么重写抽象父类中所有的抽象方法 要么子类本身也是一个抽象类
接口
方法声明的集合称为接口,它没有具体方法的实现需要通过类来实现接口。例如接口中定义了一个work方法,它是一个空的方法体,并没有说明工作的薪水、在哪里工作、工作岗位等
例如我们定义了一个接口working,提供抽象work方法,那我们就要再定义一个人的类Worker,实现working接口,重写work方法。在重写的方法中我们可以具体定义关于work方法的内容。
接口的特点:
1.如何定义接口
public interface 接口名{}
2.如何实现接口
public class 类名 implements 接口名{}
3.接口不能被实例化,可以通过多态形式创建实现类对象
4.接口的实现类
要么重写接口中所有的抽象方法
要么实现类定义为抽象类
抽象类和接口的区别
1.成员区别
抽象类:变量、常量、构造方法、普通方法、抽象方法
接口:常量、抽象方法
2.关系区别
类和类:继承关系,单继承
类和接口:实现关系,单实现、多实现
接口和接口:继承关系,单继承、多继承
3.设计理念区别
抽象类:完成的是一些共性功能的抽取
接口:完成的是一些特性功能的抽取