Java语言继承的概念与实现
龚超 2018-06-11 来源 : 阅读 781 评论 0

摘要:Java语言的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。希望对大家学习Java语言有所帮助。

Java语言的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。希望对大家学习Java语言有所帮助。

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

继承使用 extends 关键字。

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

复制纯文本新窗口

1. class People{
2.     String name;
3.     int age;
4.     int height;
5.   
6.     void say(){
7.         System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);
8.     }
9. }

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

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

1. class Teacher extends People{
2.     String school;  // 所在学校
3.     String subject;  // 学科
4.     int seniority;  // 教龄
5.   
6.     // 覆盖 People 类中的 say() 方法
7.     void say(){
8.         System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄");
9.     }
10.   
11.     void lecturing(){
12.         System.out.println("我已经" + age + "岁了,依然站在讲台上讲课");
13.     }
14. }

对程序的说明

· name 和 age 变量虽然没有在 Teacher 中定义,但是已在 People 中定义,可以直接拿来用。

· Teacher 是 People 的子类,People 是Teacher 类的父类。

· 子类可以覆盖父类的方法。

· 子类可以继承父类除private以为的所有的成员。

· 构造方法不能被继承。


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

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

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

1. public class Demo {
2.     public static void main(String[] args) {
3.         Teacher t = new Teacher();
4.         t.name = "小布";
5.         t.age = 70;
6.         t.school = "清华大学";
7.         t.subject = "Java";
8.         t.seniority = 12;
9.         t.say();
10.         t.lecturing();
11.     }
12. }
13.
14. class People{
15.     String name;
16.     int age;
17.     int height;
18.   
19.     void say(){
20.         System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);
21.     }
22. }
23.
24. class Teacher extends People{
25.     String school;  // 所在学校
26.     String subject;  // 学科
27.     int seniority;  // 教龄
28.   
29.     // 覆盖 People 类中的 say() 方法
30.     void say(){
31.         System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄");
32.     }
33.   
34.     void lecturing(){
35.         System.out.println("我已经" + age + "岁了,依然站在讲台上讲课");
36.     }
37. }

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

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!

  • 370
    文章
  • 23153
    人气
  • 87%
    受欢迎度

已有23人表明态度,87%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
WEB前端必须会的基本知识题目
经验技巧 93% 的用户喜欢
Java语言中四种遍历List的方法总结(推荐)
经验技巧 91% 的用户喜欢
Java语言之SHA-256加密的两种实现方法详解
经验技巧 75% 的用户喜欢
java语言实现把两个有序数组合并到一个数组的实例
经验技巧 75% 的用户喜欢
通过Java语言代码来创建view的方法
经验技巧 80% 的用户喜欢
其他海同师资 更多>>
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
范佺菁
范佺菁 联系TA
擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!
金延鑫
金延鑫 联系TA
擅长与学生或家长及时有效沟通
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程