接口的特点
接口的特点:
1、接口使用关键字:interface表示
定义格式:interface 接口名{}
2、类实现接口用
定义格式:class 类名 implements 接口名{}
3、接口不能实例化
那么如何表示接口的实现呢?
使用多态的方式实现,有具体的子类进行实例化,其实这是多态的一种,接口多态
4、接口子类的特点
如果子类是一个抽象类,那么可以不需要重写接口中的方法
如果子类是一个具体的类,必须要重写接口中所有抽象方法
到目前为止,我们学过三种多态方式:
1、具体类中的多态 (最后才是这个)
2、抽象类中的多态 (其次是抽象多态)
3、接口中的多态 (是最常见的,接口开发)
abstract class Animal{
private String name;
private int age;
public Animal() {
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void eat();
}
class Cat extends Animal{
public Cat() {
}
public Cat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
//定义一个接口,表示钻火圈
interface DrillFire{
public void zuanHuo();
}
//定义训练过具体的猫的类实现钻火圈接口(子类是一个具体的类,必须要重写接口中所有抽象方法)
class TrainCat implements DrillFire{
@Override
public void zuanHuo() {
System.out.println("猫跳着钻火圈");
}
}
//定义一个抽象类实现钻火圈接口(子类是一个抽象类,那么可以不需要重写接口中的方法)
abstract class Demo implements DrillFire{
}
public class InterfaceDemo1 {
public static void main(String[] args) {
// DrillFire df = new DrillFire();
DrillFire df = new TrainCat();//接口中的多态
}
}