面试中涉及java SE的几大块问题续1

本文探讨了抽象类(Abstract Class)与接口(interface)的不同之处,包括它们的关注点、使用场景及其实现方式。通过实例说明了两者如何应用于具体的软件设计中。
当然,如果事情足够复杂,在ABC剩下的事务中可能是围绕一件事E进行多个实现,那么ABC去implements这个E接口进行不同实现。E是别人提供的一个接口,实现了E就意味着主动接受了外部E的契约。
所以最终的代码就写成: public A extends X implements E(){...}
此外,还有一些观点:

1,interface关注的是外部的使用者,对外指定一种规则,而Abstract Class是针对类自身的,是对内部变化的一种封装。
2,abstract class表示“is-a”的关系,即父类与继承类本质上一致的;
对于interface,并不要求interface的实现者和interface定义在概念本质上是一致的, 只表示一种契约关系,可以将interface看成“like-a”或者“has-a”的关系。

举例来说:电视机、收音机同属电器,具有打开,关闭,调台的方法;同时电视机、收音机都有遥控器(收音机带遥控器的好像不多!)。类结构如下:
abstract class 电器{
public void 打开(){}
public void 关闭(){}
public void 调台(){}
}

interface 遥控器{
void 遥控();
}

class 电视机 extends 电器 implements 遥控器{
}
class 收音机 extends 电器 implements 遥控器{
}


3,再来一例,对照总结:

	public class IPad extends device implements Bluetooth implements Wifi implement Tourch{   }
public class IPhone extends device implements Wifi implements touch { }
public class IPod extends device implements Bluetooth { }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值