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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值