目录
抽象类
案例:
特点:
接口
案例:
特点:
抽象类和接口的区别
抽象类提供了去定义抽象方法
当一个方法在父类本身并没有实际意义,只是为了给不同的子类重写自己独有的逻辑时,这个方法在父类当中就可以为抽象方法,同时父类本身也就必须为抽象类。
抽象类和方法通过abstract声明。
当子类继承了抽象类父类,但是没有重写其中的抽象方法(eat())时,编译报错。
此时我们就需要在子类中重写eat()方法
接口中同样有抽象方法,是对规则的抽象,所以接口中的方法也需要自己的实现类去重写。
我们通常是将类中的许多操作抽象为接口。
通过interface声明一个接口,其实现类通过implements实现接口,并重写其中的抽象方法。
可以看到,接口中的方法默认为public abstract,所以我们可以省略
直接写 返回值类型+方法名()
接口:
public interface Operation {
public abstract void eat();
void sleep();
}
实现类:
public class Cat implements Operation{
String name;
public Cat(String name) {
this.name = name;
}
@Override
public void eat() {
System.out.println(name+"正在吃");
}
@Override
public void sleep() {
System.out.println(name+"正在睡觉");
}
}