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

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

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

public interface 接口名 {
          
   }

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

    当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。 类使用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*********/
    }
}
经验分享 程序员 微信小程序 职场和发展