Java继承的概念与实现
继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。
继承可以理解为一个类从另一个类获取方法和属性的过程。如果类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继承的概念与实现相关推荐
- Java——继承的概念
Java--继承的概念 1.extends关键字(延伸) //定义 Animal类 class Animal {String name;//定义动物叫的方法void shout() {System.o ...
- java继承与实现的_[Java学习] Java继承的概念与实现
继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...
- Java继承的概念和实现
继承时类和类之间的关系,是一个很简单很直观的概念,与显示生活中的继承(例如儿子继承了父亲财产)类似. 继承可以理解为一个类从另一个类中获取方法和属性的过程.如果类B继承于类A,那么类B就拥有类A的属性 ...
- java继承关键字super_java学习笔记-继承中super关键字
背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...
- [转载] Java继承概念和关键字
参考链接: Java中的重要关键字 继承的概念 继承是java面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一.继承是软件可重用性的一种表现,新类可以在不增加自身 ...
- 第八章第一节:Java继承之继承概念、语法、成员访问和super关键字
文章目录 一:继承的概念及语法 (1)什么是继承 (2)Java继承语法 二:成员访问 (1)子类访问父类的成员变量 (2)子类访问父类的成员方法 三:super关键字 (1)super关键字 A:作 ...
- java继承与实现的_Java继承_概念与实现(一)
继承就是子类继承父类行为,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 概念不容易理解,举个大家都熟悉的魔兽游戏例子,加深一下理解继承. 通过上面的图,我们知道,游戏中有很多对象, ...
- java继承中的一些该注意的问题
关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧. 错误认识1.继承,是将父类中 ...
- php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念
js里常用的如下 - phpStudy...
JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...
最新文章
- 深度盘点 Python11 个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......
- 【翻译】Ext JS最新技巧——2014-8-13
- Python IDLE快捷键一览
- python最新版下载教程-各种版本的Python下载安装教程
- ValueAnimator API 介绍
- 简单复读机LR如何成为推荐系统精排之锋?
- struct lnode是什么结构类型_【自考】数据结构第三章,队列,期末不挂科指南,第4篇
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群 (2)
- CentOS6.5和RedHat6.5下以rpm方式安装mysql-5.6.20
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
- 物流前沿理论与方法1
- 女生学计算机和遥感哪个好就业,遥感科学与技术有性别歧视吗知乎
- CefSharp中文帮助文档
- 单点登录系统和传统登录的区别
- 如何去除2345好压的广告弹窗
- html link canonical
- mysql5.7 性能优化配置 innodb_buffer_pool_size
- 浅谈链改_羊了个羊_应如何设计通证模型?
- 二阶线性微分方程解的结构(齐次与非齐次)+ 常数变易法 | 高阶微分方程(二)
- 又一降糖药有抗癌活性!抑制多种肿瘤生长
热门文章
- TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
- SylixOS ARP攻击解决办法
- Sqli-labs less 50
- 解决虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
- Spring 使用注解方式进行事务管理
- C#类在初始化时的执行顺序
- SpringBoot(十五)_springboot实现预览pdf
- SkipList 跳表
- C语言操作SQLite数据库
- 如何在Window下安装node\npm\cnpm,并安装vue.js,创建项目