抽象类和接口
抽象类和接口
抽象类
特点:
- 不能实例化
- 只能靠子类去实现方法
- 抽象类里可以写普通方法,但是抽象方法必须写在抽象类中
// abstract抽象类
// java种类是单继承的,但是接口是多继承的
public abstract class Demo1 {
// 抽象方法
// 只有方法名,没有方法的实现
public abstract void doSomething();
}
// 继承抽象类
// 非抽象类继承抽象类就必须重写抽象方法
// 抽象类的所有方法都要由子类实现
public class A extends Demo1{
@Override
public void doSomething() {
}
}
接口(interface)
相对抽象类,不能写具体方法,但是可以多继承,是专业用于约束规范的
可以使项目实现约束和实现分离:面向接口编程
第一个接口:
// interface 接口
// 接口都需要有实现类
public interface Action {
// 接口中可以定义属性
// 接口中所有定义的属性默认都是 public static final
// 一般用不到
int AGE = 10;
// 接口中的所有定义的方法都默认是 public abstract
// 接口里面不能写具体的方法
// 比如 public abstract void add();
// 可以直接写成
void add(String name);
void del(String name);
}
第二个接口
public interface Action2 {
void run();
}
实现类
// 实现类
// 命名规范为:接口名+Impl
// 使用implements实现接口,必须重写里面的方法
// 可以利用接口实现伪多继承,使用(,)隔开
public class ActionImpl implements Action,Action2{
@Override
public void add(String name) {
}
@Override
public void del(String name) {
}
@Override
public void run() {
}
}