类的继承

  • 概念
  • 父类方法重写
  • super关键字
  • final关键字

概念

在Java中,类的继承是指在一个现有类的基础上产生一个新的类,产生的新类被称为子类,现有类被称为父类,子类会自动拥有父类的属性和方法。
定义一个类继承另一个类需要使用extends关键字。如果一个类没有使用extends关键字明确标识继承另一个类,则默认继承Object类
Object类是所有类的父类,该类的方法适用于所有子类,其类中的常用方法有toString()、hashCode()等。

package Extends.Example;
//定义Son类继承Father类
public class Son extends Father{}
}

注意:

  1. 在Java中,类只支持单继承,不允许多重继承,即一个类只有一个直接父类。 类比一下,就是Son类直接继承了Father类,就不可以再直接继承一个Mother类。
  2. 多个类可以继承同一个父类。 例如,Son类和Daughter类都可以继承同一个Father类。
  3. 在Java中,多重继承是允许的,即一个类的父类可以再继承其他类的父类。 例如Son类继承了Father类,Father类再继承了Grandfather类,即子孙三代。

父类方法重写

在继承关系中,子类会继承父类定义中的方法,但子类也可以在父类的基础上拥有自己的特征,即对父类的方法进行重写。
注意,子类重写的方法必须与父类被重写的方法具有相同的方法名、参数列表和返回值类型。
创建父类Father

package Extends.Example;
//父类
public class Father {public void appearance(){System.out.println("圆脸");}public void high(){System.out.println("1.8m");}
}

创建子类Son

package Extends.Example;
//定义Son类继承Father类
public class Son extends Father{public void appearance(){System.out.println("瓜子脸");}
}

测试类Main

package Extends.Example;
public class Main {public static void main(){Son mike=new Son();//创建Son类实例对象mike.appearance();//调用Son类重写的appearance()方法mike.high();//调用父类Father的high()方法}
}

运行后输出:

瓜子脸
1.8m

可见当子类重写了父类方法之后,创建的子类对象会自动调用重写的方法。

super关键字

当子类重写父类的方法后,可以通过super关键字访问被重写的方法。
super关键字的用法有三种:

  1. 在子类的成员方法中,访问父类的成员变量。
super.成员变量
  1. 在子类的成员方法中,访问父类的成员方法。
super.成员方法([参数1,参数2,···])
  1. 在子类的构造方法中,访问父类的构造方法。
super([参数1,参数2,···])

还是刚才的例子:

package Extends.Example;
//父类
public class Father {public call(String name){System.out.println("我是"+name);}
}
package Extends.Example;
//定义Son类继承Father类
public class Son extends Father{public call(){super("儿子");}
}
package Extends.Example;
//定义测试类
public class Main {public static void main(){Son mike=new Son();//创建Son类实例对象}
}

运行结果:

我是儿子

可以看出Son类的构造方法被调用时Father类的构造方法也被调用了。
注意,通过super关键字调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次

final关键字

如果父类中的某些方法不希望再被子类重写,则必须用final关键字把他们修饰为最终方法。
final关键字可用于修饰类、变量和方法,表示不能改变或最终,因此被final修饰的类具有以下特性:

  1. final修饰的类不能被继承
  2. final修饰的类不能被子类重写
  3. final修饰的变量(包括成员变量和局部变量)是常量,并且只能赋值一次

面向对象——类的继承相关推荐

  1. 头歌Educoder实验:C++ 面向对象 - 类的继承与派生

    第1关:公有继承 -- 学生信息类 任务描述 本关任务:采用公有继承设计学生信息类. 相关知识 继承 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一.简单的说,继承是指一个对象直接 ...

  2. JAVA面向对象 类的继承

    本页面更新日期: 2016年07月30日 前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类. 继承的特点 Java的继承通过 ...

  3. 【python】面向对象类的继承

    一. 单继承 定义一个动物类Animal为基类,它基本两个实例属性name和age.一个方法call 定义一个Cat 猫类继承于Animal,猫类比动物类多一个sex属性 实例猫类对象,调用父类的属性 ...

  4. C++ 面向对象 - 类的继承与派生

    目录 公有继承 -- 学生信息类 保护继承 -- 学生信息类 研究生信息类 狼人类 公有继承 -- 学生信息类 编程要求 在右侧编辑器中的Begin-End之间补充代码,设计 Student 类,并实 ...

  5. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )

    文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...

  6. 对象属性的调用_PyQt5面向对象编程,类和类的继承

    "前面的文章讲了新建一个面板的代码流程,但是它是面向过程的,这种编程思路繁琐且不易移植,而面向对象的编程思路就没有这些问题" 01面向对象编程 假设我们想制作几个面板,每个面板上有 ...

  7. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  8. JavaScript面向对象——理解构造函数继承(类继承)

    JavaScript面向对象--理解构造函数继承(类继承) 构造函数式继承(类继承) function SuperClass(id) {// 引用类型公有属性this.books = ['JavaSc ...

  9. C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

    面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...

最新文章

  1. pyBoard定时器中断中不能够做什么操作? MicroPython,pyBoard
  2. while loading shared libraries: libmysqlclient....
  3. 速度×6,模型缩小20倍:用华为华科的TinyBERT做搜索,性能达BERT 90%
  4. 学python心得体会500字-英泰移动通信:学习Python心得体会
  5. Java里的线程控制
  6. CentOS 搭建内部Yum源同步阿里Yum源
  7. java孙膑和庞涓问题_庞涓与孙膑的故事
  8. Binding(一):数据绑定
  9. 我在深圳,但是家里托人在老家找了一份工作
  10. python文件操作模式是什么,python --文件操作模式详解
  11. 云计算实战系列十三(Linux计划任务)
  12. 学C语言开发能实现月薪12K吗?
  13. 2021 年最佳开源软件榜单出炉!
  14. java中的银行界面开发_ATM机银行项目java图形界面
  15. java企业级进销存管理系统源码
  16. 输入两个正整数,求其最大公约数和最小公倍数
  17. 步步学习自定义View:Hencoder 精简版学习笔记(一)
  18. nb移动udp_电信NB物联网平台不仁不义有人来管管吗?
  19. 鼠标悬停出现二维码动画放大,url转二维码
  20. 微信客户聊天做到这四点,有效提高成单量

热门文章

  1. leetcode刷题笔记-链表的使用
  2. 安卓上架平台-百度手机助手-如果是付费内容,则必须要公司账号(个人账号无法上架app内含付费的情况)
  3. docx格式word文档打不开问题的解决
  4. 程序员真实生活曝光,蹦迪也带着电脑,网友解释:这样才有安全感!
  5. 女神节,知识女神让你更性感
  6. Fragment 增加高德地图的 com.amap.api.maps.SupportMapFragment
  7. 怎么将图文、视频生成一个二维码?多内容在线生成二维码的方法
  8. 异常系统文件userinit.exe全面解决方案
  9. Linux语法 命令大全
  10. Linux CentOS 8(磁盘的挂载与卸载)