程序设计-理解java继承-遁地龙卷风

(0)写在前面

      编程和现实世界是息息相关的,你是如何理解现实世界中的继承呢?

      继承在编程中应理解为:对父类资源(本文只讨论方法)的使用,父类方法只提供类基本的功能,父类方法之间不存在调用关系。

(1)案例介绍

      我们有这样一个任务,控制一个人上下左右移动,我们开始构建类。

public class Person

{

      public void left(){}

      public void right(){}

      public void up(){}

      public void down(){}

      public static void main(String[] args)

      {

           String flag = "左";

           Person person = new Person();

           if("左".equals(flag))

           {

                 person.left();

           }

           else if("右".equals(flag))

           {

                 person.right();

           }

           else if("上".equals(flag))

           {

                 person.up();

           }

           else if("下".equals(flag))

           {

                 person.down();

           }

      }

}

  

等等,上面的类违反了高内聚低耦合原理,我将Person的大量方法暴漏在外面,于是我改成下面的实现

public class Person

{

      public static String LEFT = "左";

      public static String RIGHT = "右";

      public static String UP = "上";

      public static String DOWN = "下";

      private void left(){}

      private void right(){}

      private void up(){}

      private void down(){}

      public void move(Object flag)

      {

           if(LEFT.equals(flag))

           {

                 left();

           }

           else if(RIGHT.equals(flag))

           {

                 right();

           }

           else if(UP.equals(flag))

           {

                 up();

           }

           else if(DOWN.equals(flag))

           {

                 down();

           }

      }

      public static void main(String[] args)

      {

           Person person = new Person();

           person.move(person.LEFT);

      }

}

  

这样还是有不好的地方,move方法只是left、right、up、down方法的使用方式,它的存在不利用代码的复用,于是我换成了下面的实现。

public class Person

{

      public static String LEFT = "左";

      public static String RIGHT = "右";

      public static String UP = "上";

      public static String DOWN = "下";

      protected void left(){}

      protected void right(){}

      protected void up(){}

      protected void down(){}

}

  

 

Person类属于功能层,功能层是纯粹的,要避免组合的出现,至于这个人到底层怎么走,我们在应用层实现,应用层也是业务逻辑体现的地方。

public class My extends Person

{

     

      public void move(Object flag)

      {

           if(LEFT.equals(flag))

           {

                 left();

           }

           else if(RIGHT.equals(flag))

           {

                 right();

           }

           else if(UP.equals(flag))

           {

                 up();

           }

           else if(DOWN.equals(flag))

           {

                 down();

           }

      }

 

}

  

嗯,你可能需要只能上下移动的角色哦!

 

 

转载于:https://www.cnblogs.com/resolvent/p/6357702.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zotero的安装路径取决于你的默认安装设置。通常情况下,如果你选择了默认安装,zotero的安装路径应该是在"C:\Program Files (x86)\Zotero\extensions\zoteroWinWordIntegration@zotero.org\install\zotero.dotm"。 这是zotero.dotm文件的路径,它是用于在Microsoft Word中添加zotero菜单的文件。 请注意,这个安装路径可能因个人安装设置而有所不同。如果你的安装路径不同,你可以在zotero的安装文件夹中寻找zotero.dotm文件。 另外,如果你要在谷歌浏览器中使用zotero插件,你需要下载并安装zotero的谷歌浏览器插件。你可以通过百度搜索"zotero 谷歌浏览器插件"来找到下载链接。 这样做可以确保你的zotero数据可以在不同设备上进行同步。 希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [zotero安装教程](https://blog.csdn.net/weixin_44549974/article/details/106127599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [知网研学+OneDrive实现多电脑文献同步](https://blog.csdn.net/weixin_44292294/article/details/126189395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值