继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。

继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。

继承使用 extends 关键字。

例如我们已经定义了一个类 People:

class People{String name;int age;int height;void say(){System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);}
}
复制代码

如果现在需要定义一个类 Teacher,它也有 name、age、height 属性和 say() 方法,另外还需要增加 school、seniority、subject 属性和 lecturing() 方法,怎么办呢?我们要重新定义一个类吗?

完全没必要,可以先继承 People 类的成员,再增加自己的成员即可,例如:

class Teacher extends People{String school;  // 所在学校String subject;  // 学科int seniority;  // 教龄// 覆盖 People 类中的 say() 方法void say(){System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄");}void lecturing(){System.out.println("我已经" + age + "岁了,依然站在讲台上讲课");}
}
复制代码

对程序的说明
name 和 age 变量虽然没有在 Teacher 中定义,但是已在 People 中定义,可以直接拿来用。
Teacher 是 People 的子类,People 是Teacher 类的父类。
子类可以覆盖父类的方法。
子类可以继承父类除private以为的所有的成员。
构造方法不能被继承。

继承是在维护和可靠性方面的一个伟大进步。如果在 People 类中进行修改,那么 Teacher 类就会自动修改,而不需要程序员做任何工作,除了对它进行编译。

单继承性:Java 允许一个类仅能继承一个其它类,即一个类只能有一个父类,这个限制被称做单继承性。后面将会学到接口(interface)的概念,接口允许多继承。

最后对上面的代码进行整理:

public class Demo {public static void main(String[] args) {Teacher t = new Teacher();t.name = "小布";t.age = 70;t.school = "清华大学";t.subject = "Java";t.seniority = 12;t.say();t.lecturing();}
}class People{String name;int age;int height;void say(){System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);}
}class Teacher extends People{String school;  // 所在学校String subject;  // 学科int seniority;  // 教龄// 覆盖 People 类中的 say() 方法void say(){System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄");}void lecturing(){System.out.println("我已经" + age + "岁了,依然站在讲台上讲课");}
}
复制代码

运行结果:
我叫小布,在清华大学教Java,有12年教龄
我已经70岁了,依然站在讲台上讲课

注意:构造方法不能被继承,掌握这一点很重要。 一个类能得到构造方法,只有两个办法:编写构造方法,或者根本没有构造方法,类有一个默认的构造方法。

想要成为一个优秀的程序员的伙伴们来说,想要成为一个优秀的、有能力程序员的话,其实作为一个开发者或者编程学习者,有一个学习的氛围跟交流圈子特别重要!这里我推荐一个Java交流Q-群,809389099,不管你是大牛还是小白,大家都一起成长进步。

Java继承的概念与实现相关推荐

  1. Java——继承的概念

    Java--继承的概念 1.extends关键字(延伸) //定义 Animal类 class Animal {String name;//定义动物叫的方法void shout() {System.o ...

  2. java继承与实现的_[Java学习] Java继承的概念与实现

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...

  3. Java继承的概念和实现

    继承时类和类之间的关系,是一个很简单很直观的概念,与显示生活中的继承(例如儿子继承了父亲财产)类似. 继承可以理解为一个类从另一个类中获取方法和属性的过程.如果类B继承于类A,那么类B就拥有类A的属性 ...

  4. java继承关键字super_java学习笔记-继承中super关键字

    背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...

  5. [转载] Java继承概念和关键字

    参考链接: Java中的重要关键字 继承的概念 继承是java面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一.继承是软件可重用性的一种表现,新类可以在不增加自身 ...

  6. 第八章第一节:Java继承之继承概念、语法、成员访问和super关键字

    文章目录 一:继承的概念及语法 (1)什么是继承 (2)Java继承语法 二:成员访问 (1)子类访问父类的成员变量 (2)子类访问父类的成员方法 三:super关键字 (1)super关键字 A:作 ...

  7. java继承与实现的_Java继承_概念与实现(一)

    继承就是子类继承父类行为,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 概念不容易理解,举个大家都熟悉的魔兽游戏例子,加深一下理解继承. 通过上面的图,我们知道,游戏中有很多对象, ...

  8. java继承中的一些该注意的问题

    关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧.   错误认识1.继承,是将父类中 ...

  9. php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念 js里常用的如下 - phpStudy...

    JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...

最新文章

  1. 深度盘点 Python11 个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......
  2. 【翻译】Ext JS最新技巧——2014-8-13
  3. Python IDLE快捷键一览
  4. python最新版下载教程-各种版本的Python下载安装教程
  5. ValueAnimator API 介绍
  6. 简单复读机LR如何成为推荐系统精排之锋?
  7. struct lnode是什么结构类型_【自考】数据结构第三章,队列,期末不挂科指南,第4篇
  8. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群 (2)
  9. CentOS6.5和RedHat6.5下以rpm方式安装mysql-5.6.20
  10. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
  11. 物流前沿理论与方法1
  12. 女生学计算机和遥感哪个好就业,遥感科学与技术有性别歧视吗知乎
  13. CefSharp中文帮助文档
  14. 单点登录系统和传统登录的区别
  15. 如何去除2345好压的广告弹窗
  16. html link canonical
  17. mysql5.7 性能优化配置 innodb_buffer_pool_size
  18. 浅谈链改_羊了个羊_应如何设计通证模型?
  19. 二阶线性微分方程解的结构(齐次与非齐次)+ 常数变易法 | 高阶微分方程(二)
  20. 又一降糖药有抗癌活性!抑制多种肿瘤生长

热门文章

  1. TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
  2. SylixOS ARP攻击解决办法
  3. Sqli-labs less 50
  4. 解决虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
  5. Spring 使用注解方式进行事务管理
  6. C#类在初始化时的执行顺序
  7. SpringBoot(十五)_springboot实现预览pdf
  8. SkipList 跳表
  9. C语言操作SQLite数据库
  10. 如何在Window下安装node\npm\cnpm,并安装vue.js,创建项目