ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 抽象类与接口 >### abstract - 抽象类 *事物所具有的共同特征跟行为* ``` abstract class 类名(){} //class之前修饰abstract ``` - 抽象方法 ``` public abstract void test(); //访问权限后,返回值类型前。没有方法体; ``` * [ ] 抽象方法指只有功能声明,没有功能主体实现的的方法。具有抽象方法的类都是抽象类。 * [ ] 只有覆盖了抽象类的所有的抽象方法,其子类才能创建对象。否则该子类还是个抽象类。 * [ ] 抽象类不能实例化自身,不能创建自身的对象 ***** >### interface(接口) *接口是对抽象方法的一种描述。* ``` public interface 接口名{} ``` * [ ] 接口是功能的集合,接口只描述所应具备的方法,并没有具体实现。 * [ ] 接口中的方法均抽象方法(默认被`public`和`abstract`修饰) * [ ] * [ ] 接口中无法定义普通的成员变量,除了被 `static `和 `final `修饰的变量 * [ ] * [ ] 使用类实现接口 关键字`implements` ``` class 类名 implements 接口名{}; ``` * [ ] 接口与父类功能可以重复,均代表要具备某种功能,并不冲突(如果不重写该方法,继承父类的方法,如果重写该方法,则同时重写父类与接口中的方法) ***** >### 抽象类与接口的区别 - 类单继承类,接口多继承接口,类多实现接口 类可以在继承一个类的同时,实现多个接口 - 接口里全是抽象方法(除了被`static `和`final`修饰的成员变量) 抽象类可以定义普通方法和成员变量