Java设计模式

设计模式笔记<2019.6.25>
第一节:接口型模式
1.写出在Java中抽象类和接口的区别:
抽象类关键字为abstract 接口关键字interface
一个类可以实现多个接口但只能继承一个抽象类
抽象类可以包含具体的方法;但是接口的方法都是抽象的
抽象类可以定义构造函数;接口不可以
抽象类可以声明字段和使用字段;接口不可以 但是可以创建静态final常量
接口的方法都是public
2.抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类的属性,行为等进行抽象;接口却是对类的局部(行为)进行抽象。
例如:鸟 和飞机是不同的事物,但是它们的共性是飞;所以在设计的时候可以将飞设计为一个接口 然后让飞机和鸟分别去实现这个接口。

3.但是现在如果我们需要门具有报警alarm( )的功能,那么该如何实现?下面提供两种思路:
1)将这三个功能都放在抽象类里面,但是这样一来所有继承于这个抽象类的子类都具备了报警功能,但是有的门并不一定具备报警功能;
2)将这三个功能都放在接口里面,需要用到报警功能的类就需要实现这个接口中的open( )和close( ),也许这个类根本就不具备open( )和close( )这两个功能,比如火灾报警器 从这里可以看出, Door的open() 、close()和alarm()根本就属于两个不同范畴内的行为,open()和close()属于门本身固有的行为特性,而alarm()属于延伸的附加行为.好的解决办法是单独将报警设计为一个接口,包含alarm()行为,Door设计为单独的一个抽象类,包含open和close两种行为。再设计一个报警门继承Door类和实现Alarm接口

interface Alram {
void alarm();
}

abstract class Door {
void open();
void close();
}
class AlarmDoor extends Door implements Alarm {
void oepn() {
//…
}
void close() {
//…
}
void alarm() {
//…
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值