基于Java OOP的程序流程

Sik*_*der 3 java oop polymorphism inheritance class

我正在学习基本的java,阅读Head First Java的基本概念(Polymorphisim,抽象类/方法,覆盖等),现在我正在做一个非常简单的例子,其中Remote用于电视,家庭影院和Cd播放器.一个遥控器必须完美地适用于所有3个设备.现在我做的是......

  • 遥控器是所有这三类电视,家庭影院,CD播放器的超级类.
  • 基本功能,如开,关,音量+ - ,通道+ - 等都是超级类,这些被覆盖
  • 那些不常见的方法是在诸如弹出,插入,用于Cd播放器,显示设置用于电视和剧院等界面中实现的.

    这种方法可以吗?

将一个类作为超类并在接口中实现其余代码.

还有一点,if one method is common in Tv and theater like Display settings should i implement interface or change my class hierarchy ..

请不要介意它的愚蠢问题,并指导我关于这些oop设计技巧,谢谢

Ani*_*kur 7

在实现继承(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)

在里面.