抽象类继承多个抽象类_Java基础 继承、super、this、抽象类

这篇博客详细介绍了Java中的继承特性,包括继承的概念、格式、特点,如成员变量和方法的访问、super和this的使用。此外,还探讨了抽象类的定义、使用格式以及注意事项,强调了抽象类不能实例化且子类必须重写抽象方法。最后,通过群主发红包的案例展示了继承的实际应用。
摘要由CSDN通过智能技术生成

今日内容

三大特性——继承

方法重写

super关键字

this 关 键 字

抽象类

教学目标

能够解释类名作为参数和返回值类型

能够写出类的继承格式

能够说出继承的特点

能够说出子类调用父类的成员特点

能够说出方法重写的概念

能够说出super可以解决的问题

描述抽象方法的概念

写出抽象类的格式写出抽象方法的格式

能够说出父类抽象方法的存在意义

能够完成发红包案例的代码逻辑

第一章 继承

1.1概述

由来

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要 继承那一个类即可。如图所示:

d313a5b9ff26b2d06f71678eb5a2073e.png

其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。

继承描述的是事物之间的所属关系,这种关系是:is-a的关系。例如,图中兔子属于食草动物,食草动物属于动

物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。

定义

继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。

好处

1.提高代码的复用性。

2.类与类之间产生了关系,是多态的前提。

1.2继承的格式

通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:

class 父 类 {...}class 子 类 extends 父 类 {...}

继承演示,代码如下:

/** 定义员工类Employee,做为父类*/class Employee {String name; // 定义name属性// 定义员工的工作方法public void work() { System.out.println("尽心尽力地工作");}}/** 定义讲师类Teacher 继承 员工类Employee*/class Teacher extends Employee {// 定义一个打印name的方法public void printName() { System.out.println("name=" + name);}}/** 定义测试类*/public class ExtendDemo01 {public static void main(String[] args) {// 创建一个讲师类对象Teacher t = new Teacher();// 为该员工类的name属性进行赋值t.name = "小明";// 调用该员工的printName()方法t.printName(); // name = 小 明// 调用Teacher类继承来的work()方法t.work(); // 尽心尽力地工作}}

1.3继承后的特点——成员变量

当类之间产生了关系后,其中各类中的成员变量,又产生了哪些影响呢?

成员变量不重名

如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。代码如下:

class Fu {// Fu中的成员变量。int num = 5;}class Zi extends Fu {// Zi中的成员变量int num2 = 6;// Zi中的成员方法public void show() {// 访问父类中的num,System.out.println("Fu num="+num); // 继承而来,所以直接访问。// 访问子类中的num2System.out.println("Zi num2="+num2);}}class ExtendDemo02 {public static void main(String[] args) {// 创建子类对象Zi z = new Zi();// 调用子类中的show方法z.show();}}演示结果: Fu num = 5 Zi num2 = 6

成员变量重名

如果子类父类中出现重名的成员变量,这时的访问是有影响的。代码如下:

class Fu {// Fu中的成员变量。int num = 5;}class Zi extends Fu {// Zi中的成员变量int num = 6;public void show() {// 访 问 父 类 中 的 num System.out.println("Fu num=" + num);// 访问子类中的numSystem.out.println("Zi num=" + num);}}c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值