首页 > 代码库 > 抽象类和接口
抽象类和接口
抽象类:
关键字abstract: 一个类如果被abstract修饰那么这个就叫抽象类
1.abstract修饰的方法,称为抽象的方法
2.abstract修饰的类,称为抽象类
3.一个类继承了抽象类,必须要实现抽象类中的抽象方法
abstract 关键字使用:
1.一个方法没有方法体,这个方法必须要用abstract来修饰
2.一个类中有抽象方法,这个类必须用abstract来修饰,为抽象的类
3.一个非抽象的类,继承了这个抽象类,那么这个非抽象类中必须重写所有的抽象方法
4.抽象类中可以有非抽象的方法
5.抽象类中可以有构造方法,作用是让子类能够初始化父类中的变量
6.抽象类不能创建对象
原因:如果创建对象,对象就可以调用抽象方法,这样调用抽象方法(没有具体的实现)没有意义
7.抽象类中可以没有抽象方法
abstract的使用场景:
事物存在某种行为,但又不具体,那么可以抽取这种行为,声明一个没有实现的行为,
这种行为称为抽象的行为,这个时候就需要用到抽象类。
abstract class Animal // abstract修饰的类,为抽象类
{
abstract public void run(); // 抽象方法时没有主体,没有方法的具体实现
}
非抽象类继承了抽象类,必须实现抽象类的所有方法
abstract不能和那些关键字连用:
1.不能和private (抽象必须要重写,但是私有的不能重写)
2.不能和static使用(static修饰的方法不能被重写,而abstract修饰方法本身没方法体的必须重写)
3.不能final一起使用 (final是修饰的方法不能被重写,抽象的是需要重新写的)
接口:用来添加扩展功能
Eg..带橡皮擦的铅笔,拥有橡皮擦的功能,又拥有写字的功能,java中又不能出现既集成铅笔又继承橡皮擦,所以引出了借口(解决单继承问题)
interface关键字
接口定义模式:
用interface关键字来表示接口
结构:interface 接口名{};
Implements关键字
实现接口中的方法,需要用实现(implements)来完成
结构:class 类 implements 接口名1,接口名2...
{
}
java 中支持多实现,即一个类可以实现多个接口,类如果实现了一个接口,需要将接口中的方法都实现
作用: 1.用来拓展功能
2.让程序解耦
3.定义约束
接口使用注意事项:
1.接口是一个特殊的类,可以定义属性和方法
2.属性默认final修饰, public static final实际上是一个常量
3.方法都是抽象的 abstract public
4.接口不能创建对象
5.接口没有构造方法
6.接口是给类去实现的,非抽象类实现接口时,必须将接口中方法都实现。
抽象类和接口