龙卷风java_程序设计-理解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();

}

}

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值