第七章 继承、多态、抽象类与接口

继承和多态是面向对象开发中非常重要的一组概念念。继承和多态使用得当,整个程序的架构将变得非常有弹性,同时可以减少代码的冗余性。继承机制别下,用户可以复用一些定义好的类,减少重复代码的编写。多态机制下,用户可以动态调整对象的话调用,降低对象之间的依存关系。为了优化继承与多态,一些类除了可继承父类,还需要使用接口的形形式。Java 中的类可以同时实现多个接口,接口被用来建立类与类之间关联的标准。

一、类的继承
继承在面向对象开发思想中是一个非常重要的概念,它使整个程序架构具有一定的弹性。在程序中复用一些已经定义完善的类,不仅可以减少软件开发发周期,也可以提高软件的可维护性和可扩展性。

在Java语言中,一个类继承另一个类需要使用关键字 extends,关键字extends的使用方法如下:

class Child extonds Parent { }

因为Java只支持单继承,即一个类只能有一个父类,所以类似下面的代码是错误的:

class Child extende Parent1,Paronts2{ }

子类在继承父类之后,创建子类对象的同时也会调用父类的构造方法。

【例7.1】创建子类对象,观察构造方法执行顺序 

父类 Parent 和子类Child都各自有一个无参的构造方法,在 main()方法中创建子类对象时,Java虚拟机会先执行父类的构造方法,然后再执行子类的松购造方法。f37f061dcce14177967a4352440f47af.png

f37f061dcce14177967a4352440f47af.png 

a7c919daf21c4ad6a71d7570b8df1859.png 

 

子类继承父类之后可以调用父类创建好的属性和方法。

【例7.2】在电话类基础上衍生出手机类

Telephone电话类作为父类衍出Mobile手机类,手机类可以直接使用电话类的按键属性和拨打电话行为。

24edfd982b0f42fe85a9152ef3d6b770.png

46dd56619b0a41b088e5cf1734c4f50d.png 

03e9a0d7a7924cec884b77cdb60abb19.png 

 子类Mobile 类仅创建了一个显示屏属性生,剩余的其他属性和方法都是从父类Telephone 类中继承的。

Java虽然不允许同时继承两个父类,但不不代表没有多继承的关系,可以通过类似“祖父>父>儿子>孙子”的方式实现多代继承。

例如,绝大多数动物有眼睛、鼻子和嘴, 犬类继承动物类,所以犬类也有眼睛、鼻子和嘴,哈士 奇是犬类的一个品种,犬类有的特性哈士奇头本都有。但哈士奇的眼睛、鼻子和嘴并不是从犬类继承的,而是从动物类继承的。

二、Object类
object是对象数据类型。

Object类是所有Java类的祖先。每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的方法。

在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类,可以使用类型为Object的变量指向任意类型的对象。

Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。Ob

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值