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*********/
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ares丶茂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值