Educoder–Java抽象类和接口 第2关:防盗门

任务描述
本关任务:通过编程实例,掌握接口的定义和使用。

相关知识
概念:类描述对象的属性和方法。接口则包含类要实现的方法。
声明:接口通常以interface来声明。
格式:

public interface 接口名 {}

特性:接口中每一个方法都是抽象的,接口中的方法会被隐式的指定为 public abst\fract
#####接口的实现与继承
接口的实现:

  • 当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
  • 类使用implements关键字实现接口。在类声明中,implements关键字放在类的声明后面。
interface Animal {
    public void eat();
    public void travel();
}
public class MammalInt implements Animal {
    public void eat() {
        System.out.println("Mammal eats");
    }
    public void travel() {
        System.out.println("Mammal travels");
    }
    public static void main(String args[]) {
        MammalInt m = new MammalInt();
        m.eat();
        m.travel();
    }
}

输出结果:
Mammal eats
Mammal travels

接口的继承:

  • 一个接口能继承另一个接口,和类之间的继承方式比较相似。
  • 接口的继承使用extends关键字,子接口继承父接口的方法。

编程要求

  • 接口Alarm(报警)拥有抽象方法void alarm()
  • 接口Guard(防盗)拥有抽象方法void guard()和防盗年限10年
  • 抽象类Door(门)拥有抽象方法void open()和void close()
  • AlarmGuardDoor(防盗门)类继承了Door类,实现了接口Guard和接口Alarm
  • 在类InterfaceDemo中完成类AlarmGuardDoor的实例化,并分别调用AlarmGuardDoor类中的所有方法查看输出效果(调用方法的顺序:open(),alarm(),guard(),close())。

AlarmGuardDoor类中:

  • open()方法输出“芝麻开门”,
  • alarm()方法输出“刮风下雨收衣服了”
  • guard()方法输出“防盗效果好”
  • close()方法输出“芝麻关门”

*接口Alarm(报警)拥有抽象方法void alarm()

package step2;
interface Alarm{
    public void alarm();
}

AlarmGuardDoor(防盗门)类继承了Door类,实现了接口Guard和接口Alarm

package step2;
public class AlarmGuardDoor extends Door implements Guard, Alarm{
    public void open()
    {
        System.out.println("芝麻开门");
    }
    public void close()
    {
        System.out.println("芝麻关门");
    }
    public void alarm()
    {
        System.out.println("刮风下雨收衣服了");
    }
    public void guard()
    {
        System.out.println("防盗效果好");
    }
}

抽象类Door(门)拥有抽象方法void open()和void close()

package step2;
public abstract class Door{
    public abstract void open();
    public abstract void close();
}

接口Guard(防盗)拥有抽象方法void guard()和防盗年限10年

package step2;
interface Guard{
    final int GUARD_YEAR = 10;
    public void guard();
}

在类InterfaceDemo中完成类AlarmGuardDoor的实例化

package step2;
public class InterfaceDemo {
    public static void main(String[] args) {
        /*********begin*********/
        //类AlarmGuardDoor实例化,并调用AlarmGuardDoor类中的所有方法。调用的顺序:open(),alarm(),guard(),close()
        AlarmGuardDoor agd=new AlarmGuardDoor();
        agd.open();
        agd.alarm();
        agd.guard();
        agd.close();
        
        
        
        /*********end*********/
    }
}

你可能感兴趣的:(Educoder)