Java继承的概念与实现

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

继承可以理解为一个类从另一个类获取方法和属性的过程。如果类

B 继承于类

A ,那么B 就拥有A 的方法和属性。

继承使用 extends 关键字。(参考网站:t.cn/RA5iKhq)

例如我们已经定义了一个类 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 class People{

14 String name;

15 int age;

16 int height;

17

18 void say(){

19 System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);

20 }

21 }

22 class Teacher extends People{

23 String school; // 所在学校

24 String subject; // 学科

25 int seniority; // 教龄

26

27 // 覆盖 People 类中的 say()

方法

28 void say(){

29 System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄" );

30 }

31

32 void lecturing(){

33 System.out.println("我已经" + age + "岁了,依然站在讲台上讲课" ); 34 }

35 }

运行结果:

我叫小布,在清华大学教Java ,有12年教龄

我已经70岁了,依然站在讲台上讲课

注意:构造方法不能被继承,掌握这一点很重要。 一个类能得到构造方法,只有两个办法:编写构造方法,或者根本没有构造方法,类有一个默认的构造方法。(更多关注尽在订阅号:javaedu )

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

继承可以理解为一个类从另一个类获取方法和属性的过程。如果类

B 继承于类

A ,那么B 就拥有A 的方法和属性。

继承使用 extends 关键字。(参考网站:t.cn/RA5iKhq)

例如我们已经定义了一个类 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 class People{

14 String name;

15 int age;

16 int height;

17

18 void say(){

19 System.out.println("我的名字是 " + name + ",年龄是 " + age + ",身高是 " + height);

20 }

21 }

22 class Teacher extends People{

23 String school; // 所在学校

24 String subject; // 学科

25 int seniority; // 教龄

26

27 // 覆盖 People 类中的 say()

方法

28 void say(){

29 System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教龄" );

30 }

31

32 void lecturing(){

33 System.out.println("我已经" + age + "岁了,依然站在讲台上讲课" ); 34 }

35 }

运行结果:

我叫小布,在清华大学教Java ,有12年教龄

我已经70岁了,依然站在讲台上讲课

注意:构造方法不能被继承,掌握这一点很重要。 一个类能得到构造方法,只有两个办法:编写构造方法,或者根本没有构造方法,类有一个默认的构造方法。(更多关注尽在订阅号:javaedu )


相关文章

  • 面向对象程序实验报告撰写模板
  • 面向对象设计实验指导书 2015年9月 信息工程学院 侯向华 目录 实验一 熟悉java 的编程环境 . ................................................................... ...查看


  • 如何判断 Java 工程师的基础知识是否扎实?
  • 抛开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一人java程序员的技术扎实程度 本着理论结合实践的方法,我一般都不问上面这种纯知识和理论性问题,而是让他写一段程序来证明HashMap是线程不安全的.然后,再让改一下这个程 ...查看


  • java中英文文献
  • 南 京 理 工 大 学 紫 金 学 院 毕业设计(论文) 外文资料翻译 系: 计算机系 专 业: 计算机科学与技术 姓 名: 学 号: 09 060 14 16 外 文 出 处 :(用外文写) Ghosh,D..Java Object-or ...查看


  • 企业面试题集绵
  • (一) Java中有没有goto关键字? (二) 基本数据类型有哪些?String是不是基本数据类型? 基本数据类型:byte, char, short, int, long, float, double, boolean String不属 ...查看


  • 病人档案管理系统
  • 大连科技学院 数据库 课程设计 题 目 ************************** 起讫日期 2015年 12月 07日 至 2015年 12月 18 日 学生姓名 **** 专业班级 软件工程(金融)11-1班 指导教师 职 称 ...查看


  • 面向对象程序设计的教学改革
  • 面向对象技术现在已经成为计算机科学与技术中的一个重要领域,并渗透到计算机学科的很多方向.面向对象的思想方法属于计算机专业学生必须学习掌握的核心课程内容. 由于技术发展日新月异,计算机专业教学特别是教材编写已经相对滞后,面向对象程序设计课程亦 ...查看


  • OC温故:类的三大特性(封装,继承,多态)
  • 原文标题:OC学习篇之---类的三大特性(封装,继承,多态) 我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 封装就是对类中的一些字段, ...查看


  • 抽象与继承
  • 抽象应该尽可能有多的共同代码,而拥有尽可能少的数据,一个对象从超类继承来的代码,在不使用的时候不会造成资源浪费,而数据的移动是从抽象到具体,一个对象的数据不论是否使用都会占用资源. 继承关系分为:类对接口的实现和类对类的继承,只要有可能尽量 ...查看


  • JAVA复试问题答案
  • (一) JAVA复试的问题整理 1 Hibernate 的优化流程是如何实现的,流程是怎么样? 1. 尽量使用many-to-one ,避免使用单向one-to-many 象 2 Struts1与Struts2的区别? 在Action 实现 ...查看


热门内容