java 编程思想 读书笔记2

继承

  1. 已现有的类为基础,复制它,然后通过添加修改这个副本来创建新类
  2. 当源类(基类。超类、父类)发生变动时,被修改的副本也会反映出变动
  3. 类型不仅仅只是作用一个对象集合上的约束条件,同时还于其他类型直接的关系,其中一个类型可能会比另一个含有更多的特性,并且可以处理更多的消息(已不同的方式来处理消息)。继承使用基类格导出类的概念表示了这种类型之间的相似性。
  4. 一个基类包含其所有导出类型所共享的特性和行为。
  5. 可以创建一个基类型来表示系统中某些对象的核心概念,从基类型中导出其他类型,来表示此核心可以被实现以不同的方式
  6. 当继承现有类型时,也就创造了新的类型。这个新的类型不仅包括现有的所有成员(不包括private,不可访问),它复制了基类的接口,也就是说所有可以发送给基类对象的消息同时也可以发送给导出类对象。
  7. 导出类与基类具有相同的类型
  8. 通过继承产生类型的等价性
  9. 如果只是简单得继承一个类而不做其他任何事,那么在基类接口中的方法将会直接继承到导出类中。这样做没有什么特别的意义。
  10. 有两种方法可以使基类与导出类(父类与子类)
    1. 直接在导出类中添加新的方法。
    2. 覆盖(overriding)覆盖某个方法,可以直接在导出类中创建该方法的新定义(使用相同的接口方法,但是在新类型中做些不同的事情)

"是一个(is-a)"与“想是一个(is-like-a)”关系

  1. 继承(is-a关系)如果继承只覆盖基类的方法而没有添加新的方法这可以视为纯粹替代
  2. (is-like-a) 有时候必须在导出类型中添加新的接口元素,扩展了接口,这个新类仍然可以替代基类,但是这一种替代并不完美,因为基类无法访问新添加的方法。
    (java不支持多继承,但是支持多重继承。使用特殊的方法也可以实现多继承JAVA多重继承实现机制

伴随多态的可互换对象
1. 一个非面向对象编程的编译器产生的函数调用会引起所谓的前期绑定。
2. 在oop(面向对象)中直到程序运行才能够确定到代码地址。面向对象程序设计使用了后期绑定的概念,当对象发送信息的时候编译器为确保调用的方法存在,会对调用参数和返回值执行类型检查,但是并不知道将被执行的代码,JAVA使用一小段特殊的代码代替绝对调用地址这样就能知道这条消息应该做什么。
单根继承结构
1.在OOP中所有的类最终都继承单一的基类Object。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值