08Java第八课 类的继承

一 概述

继承是类与类之间的一种关系。通过extends关键字,让子类拥有父类的属性和方法。

格式:子类名 extends 父类名

二 代码实现

1 定义父类Student

创建一个学父类——学生类Student0216,写上这个类的属性name和方法eat以及showInfo

2 定义子类UNStudent0216

在没有继承之前,Student0216和UNStudent0216是没有任何关系的

3 实现继承

此时已经实现了继承,父类Student0216中的属性和方法不需要在子类UNStudent0216中重新定义,只需要写子类自己的属性即方法即可。对于这个例子就是name属性和eat 以及showInfo方法不用再定义。

写子类自己独有的属性CET4Score和方法showCET4Score

这里没有定义父类的属性name,但是继承之后UNStudent0216类也可以调用name如下

继承的优点:

1可以减少代码的重复,实现代码复用。子类和父类相同的属性和方法可以子类直接继承不用再重新写代码。常用在人员管理系统

2继承之后,子类可以实现在父类的基础上扩展程序,包括定义自己的属性和方法,以及重写父类的方法

4 方法的重写

也就是在子类中重新定义父类中的方法。规则:必须和父类的方法同名同参。除了方法体,其他都是相同的。一定要先将父类的方法直接复制到子类中。

现在重写父类中的showInfo方法

创建主函数类,并创建对象测试以上代码

unStudent0216是子类UNStudent0216的对象

子类的对象可以调用以下

1 子类独有的方法showCET4Score

 2 父类Student0216的继承的属性name和方法eat

3 子类重写的方法showInfo——优先调用重写后的方法

对于父类的对象student0216,是无法调用子类重写的方法的

super关键字:在子类中指代父类。重写方法体中子类和父类重复的部分直接用super.方法;取代。

 比如父类的showInfo方法体中的这一句是在子类重写方法体中重复的

可以把这中重复的代码换成super.showInfo();

三 类与类之间的转型问题

1对象的类型

一个对象可以是多种类型,首先是自己的类,其次也是自己的类继承的父类的类型

2父类与子类的转型

(1)自动转型

子类的对象可以自动转为父类的对象,且转型之后不能调用子类独有的方法和属性,但是重写的方法还是可以调用

可以看出Stu2虽然是父类对象,但是是从子类自动转型来的,所以调用showInfo依然可以调用重写的方法

自动转型的优点:便于对象的管理和存储。原先每个子类对象的信息都要存在各自子类对象的类型的数组中,当这些子类有了共同的父类,就可以用父类类型的数组存储所有子类的对象。

例如父类是Stu,子类有Stu1,Stu2,Stu3。

Stu[] stu;

Stu1[] stu1;

Stu2[] stu2; 可以存储以上两种类型

(2)强制转型

首先,强制转换是不安全的。其次强制转换有个前提:要进行强制转型的对象,必须是从子类对象自动转型为父类后的对象。

子类——>自动转为——>父类——>强制转为——>子类

例如:

子类1——>父类——>子类1  是可以的

子类1——>父类——>子类2  不可以

父类——>子类  也不可以

stu1是父类对象,强制转换为子类对象是不安全的。这个stu3依然可以调用独有的属性方法以及重载的方法 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值