Sik*_*der 3 java oop polymorphism inheritance class
我正在学习基本的java,阅读Head First Java的基本概念(Polymorphisim,抽象类/方法,覆盖等),现在我正在做一个非常简单的例子,其中Remote用于电视,家庭影院和Cd播放器.一个遥控器必须完美地适用于所有3个设备.现在我做的是......
那些不常见的方法是在诸如弹出,插入,用于Cd播放器,显示设置用于电视和剧院等界面中实现的.
这种方法可以吗?
将一个类作为超类并在接口中实现其余代码.
还有一点,if one method is common in Tv and theater like Display settings should i implement interface or change my class hierarchy .
.
请不要介意它的愚蠢问题,并指导我关于这些oop设计技巧,谢谢
在实现继承(SuperClass-SubClass逻辑)之前,始终执行Is-A测试.电视是遥控器吗?不......那你的做法是错的.据我说它必须是一个界面.电视必须实现不扩展远程.只要您拥有通用代码,就可以避免使用继承进行复制.
基本功能,如开,关,音量+ - ,通道+ - 等必须在远程接口和所有其他类电视都必须实现它们.
public Class TV implements Remote
Run Code Online (Sandbox Code Playgroud)
此外,如果您想使用继承,您可以使用像ElectronicGadget这样的SupeClass .你所有的电视,家庭影院,Cd播放器都是电子小工具.您可以使用常见的方法
public boolean turnOn()
public boolean turnOff()
Run Code Online (Sandbox Code Playgroud)
在里面.