抽象类的特点
- 类由 abstract 修饰
- 既有抽象方法,又有普通方法
- 抽象类是类,是类就只能单继承
- 抽象类的子类只允许继承一个抽象类
接口的特点
- 接口是 interface ,不是class
- 接口中只有抽象方法(大多数人的认知,其实是错误的),其实接口中还可以有静态方法,并且静态方法有方法体
- 接口可以多实现
- 抽象类的子类可以实现多个接口
- 在接口中写的main方法,不能执行,但是可以调用
接口的使用规则
(1) 子类使用implements可以实现多个父接口,子接口可以使用extends去扩展其他接口,并且只能扩展一个接口
(2) 接口的子类一定且必须重写接口中的全部方法,包括其父接口的方法(抽象方法,静态方法不需要),子接口不需要
注意点:
- 方法的权限只有public,默认不写是也是public权限
- 全局变量的完整写法public static final String name = “hello”;(常量一般都是大写字母)
全局变量的简写 String STR = “HELLO”,接口中的全局变量都是静态的;
注意:当子类既继承某个抽象类,又同时实现多个接口时,应该先继承后实现
- 抽象类与接口的关系
抽象类是可以实现多个接口的 - 普通类,抽象类,接口之间的关系
普通类可以继承普通类,可以继承抽象类,可以实现多个接口
抽象类可以继承普通类,可以继承抽象类,可以实现多个接口
接口可以继承多个接口,但不能继承类