对象入门2.继承、动态绑定 abstract interface关键字

继承,关键字 extends
原始类(正式名称叫作基础类、超类或父类)发生了变化,修改过的“克隆”类(正式名称叫作继承类或者子类)也会反映出这种变化。
子类有两种用法:等价与类似
通常认为基础类和衍生类之间存在一种“等价”关系——因为我们可以理直气壮地说:“圆就是一种几何形状”
但在许多时候,我们必须为衍生类型加入新的接口元素。所以不仅扩展了接口,也创建了一种新类型。
通常,继承最终会以创建一系列类收场,所有类都建立在统一的接口基础上。

动态绑定(多形性)
函数 
void doStuff(Shape s) { 
  s.erase(); 
  // ... 
  s.draw(); 
}


Circle c = new Circle(); 
Triangle t = new Triangle(); 
Line l = new Line(); 
doStuff(c); 
doStuff(t); 
doStuff(l); 
对doStuff()的调用会自动良好地工作,无论对象的具体类型是什么。 
这实际是一个非常有用的编程技巧。请考虑下面这行代码: 
将一条消息发给对象时,如果并不知道对方的具体类型是什么,但采取的行动同样是正确的,这种情况就叫作“多形性”(Polymorphism)。对面向对象的程序设计语言来说,它们用以实现多形性的方法叫作“动态绑定”。

在C++中,关键字virtual允许动态绑定,而java完全不需要任何关键字

造型(Cast):Circle(圆)--》Shape(几何形状)上溯造型,反之下溯造型,若产生错误,得到我们称为“违例”(Exception)的一种运行期错误

抽象,用abstract 关键字描述一个尚未实现的方法——作为一个“根”使用,一个类继承他之后,那个方法就必须实现,否则继承的类也会变成“抽象”类。
      interface(接口)关键字将抽象类的概念更延伸了一步,它完全禁止了所有的函数定义。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值