一、继承的引出

继承作为面向对象语言的三大特征之一,那么什么时候采用继承呢?

下面给出两个例子让大家明白继承的优点

Person类:

Student类: 

通过以上两个程序段的比较可以发现:有大量的代码段都是重复的,在没有了解继承之前,我们没有任何办法去减少这样重复的代码段,此时面对对象的思想就提出了继承的概念。

二、继承的概念

继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

上述图示中,Undergraduate和Graduate都继承了Student类,其中:Student类称为父类、基类或超类,Undergraduate和Graduate可以称为Student的 子类/派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员属性和方法即可。

三、继承的语法:

1.在Java中如果要表示类之间的继承关系,需要借助extends关键字,具体如下:

2.对上面的学生类以及子类的代码实现:

class Student {public String name;public int age;public  int id;public Student(String name,int age,int id) {this.name=name;this.age = age;this.id = id;}public void doHomework(){System.out.println(name+"在写作业");}public void doClass(){System.out.println(name+"在上课");}
}
//本科生类
class Undergraduate extends Student{public Undergraduate(String name,int age,int id) {super(name,age,id);}public void gePass() {System.out.println(name+"获得了学业证");}
}
//研究生
class Graduate extends Student{public Graduate(String name,int age,int id) {super(name,age,id);}public void doExam() {System.out.println(name+"在做研究");}
}

小结:

1.子类会将父类中的非私有的成员变量或者成员方法继承到子类当中;

2.子类继承父类之后,应该要添加一些父类没有的方法或者属性,否则去继承干什么

四、继承的使用

1.子类访问父类中的成员变量:

小结:

1.如果访问的成员变量子类有,就直接访问自己的;

2.如果访问的成员变量子类没有,就访问父类继承而来的,如果父类也没有,就报错;

3.如果访问的成员变量与父类的成员变量同名,优先访问自己的,如果要访问父类的通过super.父类变量名

2.子类访问父类中的成员方法:

小结:

1.当访问父类和子类不同名方法时,先去子类找,找到就访问,找不到去父类找,找到就访问,否则就编译报错

2.当访问父类和子类不同名方法时,如果子类中有就优先访问自己的,如果要访问父类的,通过super.父类方法名()

 3.子类构造方法: 

父子父子,有其父再有其子,即:子类对象构造时,需要先调用基类(父类)的构造方法,然后执行子类的构造方法。

注意:

1.若父类显示定义无参或者默认的构造方法,在子类构造方法第一行默认有隐含的super()调用,即调用基类构造方法

2.如果父类构造方法是带有参数的,此时编译器不会再给子类生成默认的构造方法,此时需要用户为子类显式定义构造方法,并在子类构造方法中选择合适的父类构造方法调用为父类的成员变量初始化,否则编译失败

3.super只能在子类的构造方法中出现一次,并且不能和this同时出现

4.继承方式:在java中,不支持多继承,只支持多层继承,虽然支持多层继承,但是继承的层数太多反而变得复杂麻烦,此时继承就不适合了,就应该考虑重构了

五、super总结

1.super访问父类的成员变量:super.父类成员变量名;

2.super访问父类的成员方法:super.父类成员方法名(......);

3.super访问父类的构造方法:super(.....);

4.super的使用不能出现在静态的方法中

Java 继承(extends)相关推荐

  1. Java——继承——Extends

    继承 为什么要继承呢? 继承的语法 继承的概念 子类中访问父类性质 Java的单继承 super和this 子类构造方法 protected中super的使用 final关键字 今天我们来说说面向对象 ...

  2. java继承extends

    一.什么是继承 继承:在现实世界当中也是存在的. 例如:父亲很有钱,儿子不用努力也很有钱. 二.继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要的作用,是基本作用.) 主要作用: ...

  3. java 继承extends

    继承 1.1继承的概述 继承是面向对象的三大特征之一,可以使得子类具有父类的属性和方法,还可以在类中重新定义,追加属性和方法. 格式: public class 子类名 extends 父类名{} 范 ...

  4. java 继承 extends

    extends来表示继承关系 class 父类 {}class 子类 extends 父类 {} this super 子类重写父类方法,使用this调用子类的方法,使用super调用父类的方法 cl ...

  5. JAVA继承extends小练习①

    分析以下需求,并用代码实现 1.定义Person类 属性: 姓名name.性别gender.年龄age.国籍nationality: 方法:吃饭eat.睡觉sleep,工作work. 2.根据人类,创 ...

  6. java 继承 冒号_java继承(extends)简单介绍

    继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...

  7. 继承(extends)

    继承(extends) 开发工具与关键技术:eclipse java 作者:梁峻豪 撰写时间:2021.5.8 Java继承(extends) Java中的继承就是在已经存在类的基础上进行扩展,从产生 ...

  8. Java继承 implements 与 extends 总结

    关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法.实现一个接口,必须实现接口中的所有方法.使用 implements 关键字可以变相的使java具有多继承的 ...

  9. java 继承 extends_java中的继承 (extends) 详解

    继承(extends) 1. 父类与子类 父类也叫基类.超类  子类也叫派生类  在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...

  10. 继承extends(Java)

    继承extends(Java) 代码一: package JavaSE.java基础语法.src.oop.Demo05; //继承关系 //A extends B 父子关系 A是子类 B是父类 //A ...

最新文章

  1. 深入jQuery中的data()
  2. arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结
  3. css(hr元素)水平线的定位
  4. 关于我的51CTO博客
  5. group_concat默认长度限制
  6. java 企业信息门户 拖拽排版_web中拖拽排序与java后台交互实现
  7. 计算机软件复用意义何在,2009计算机科学技术导论复习要点.pdf
  8. 一篇文章带你弄懂大数据!
  9. springboot项目java生成kml文件
  10. 航班预定系统java源代码_飞机订票系统源代码(Java)
  11. 共享文件 麒麟系统_分享中标麒麟系统的安装教程
  12. 阿里云大学互联网学院欢迎你加入!
  13. 74CMS 3.0 CSRF漏洞
  14. SAS程序探索性因子分析
  15. 雨果奖首设游戏奖项,Hades拿下科幻界的诺贝尔奖
  16. 【MYSQL】【基础知识】【MySQL的基本使用】
  17. 【Windows Server 2019】路由服务的配置和管理
  18. java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager acti
  19. Ubuntu16.04:GTX1650的显卡驱动安装
  20. 做好公司各部门数据报表支撑的几个简单思维

热门文章

  1. c语言微信自动跳一跳,C/C++知识点之微信跳一跳辅助c++实现 轻松上万
  2. 让蚊子断子绝孙,Alphabet 将用 AI 对付“吸血鬼”
  3. S7-1500连接 V90 PN 实现运动控制
  4. (翻译)Couchbase
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的同城搬家管理系统
  6. NAO机器人代码编译总结
  7. 移动电源充电宝新国标GB/T 35590-2017检测报告详细测试内容
  8. 【SpringBoot深入浅出系列】SpringBoot之调用腾讯云短信接口发送短信
  9. 你的胸怀是被谁撑大的?
  10. 上海贝尔、阿尔卡特、西门子、朗讯、诺基亚出局!