当然,如果事情足够复杂,在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”的关系。
举例来说:电视机、收音机同属电器,具有打开,关闭,调台的方法;同时电视机、收音机都有遥控器(收音机带遥控器的好像不多!)。类结构如下:
3,再来一例,对照总结:
所以最终的代码就写成: 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 { }
本文探讨了抽象类(Abstract Class)与接口(interface)的不同之处,包括它们的关注点、使用场景及其实现方式。通过实例说明了两者如何应用于具体的软件设计中。
691

被折叠的 条评论
为什么被折叠?



