java 复用类

java 复用类

在Java中进行代码复用的方式有两种

  1. 组合:在一个类中创建另一个类的实例从而达到代码复用的效果
  2. 继承:在定义一个类的时候使用extends 关键字来继承另一类从而达到代码复用的效果

继承的概念在此不再叙述,说一下继承的特性:
继承的特性

  1. 子类拥有父类非private的属性,方法和构造器。 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  2. 子类可以用自己的方式实现父类的方法。
  3. Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
  4. 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。

    说到继承,就不得不说向上转型:
    在thinking in java 中说到:“为新的类提供方法”并不是继承技术中最重要的方面, 其最重要的方面是用来表示新类与基类间的关系。这种关系可以用“新类是实现现有类的一种类型”这句话概括。

class Instrument{
    public void play(){}
    static void tune(Instrument instrument){
        instrument.play();
    }
}

public class Wind extends Instrument{
    public static void main(String[] args){
        Wind flute = new Wind();
        Instrument.tune(flute); //向上转型
    }
}

在tune()方法可以接受Instrument实例, 但是在Wind.main()方法调用tune方法是却传递的是Wind的一个实例。由于java是一中对类型严格控制的语言, 接受某种类型的方法同样可以接受另一种类型确实很奇怪, 除非在该例中Wind实例在方法调用的过程中可以自动转换为Instrument实例,而且也不存在任何tune()方法是可以通过Instrument来调用,同时又不存在于Wind中,在tune中, 程序代码可以对Instrument和它所有导出类起作用, 这种将Wind实例转换为Instrument实例的过程叫做向上转型。
向上转型是由一个比较抽象的类型向普通类型转换, 例如我们说鸟是一种动物, 这种说法就是一个向上转型的例子, 但是如果说动物是鸟就是错误的。

其实继承的作用主要在于为两个类之间提供一个关系,就如上述中Wind实例可以向上转型为Instrument实例。

在java代码复用中是选择组合还是继承:
在实际情况中考虑是否需要从新类向基类进行向上转型, 如果是必须, 那么使用继承是必须, 如果不是必须的, 那么就要考虑好好考虑实际情况了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值