Java 继承学习
Java 继承
继承实现:
在Java中,如果实现继承的,需要使用Java关键字——extends :
被继承的类叫做超类,继承超类的类叫子类。(一个子类亦可以是另一个类的超类)
class 子类 extends 父类 { …… } |
子类也可以被成为“派生类”,父类也被称为基类(超类)
子类继承父类后,子类中可以随便的调用父类定义的属性、方法等。
class Person { private String name ; private int age ; private String school ; public void setName (String name) { this.name = name ; } public setAge(int age) { this.age = age ; } public String getName() { return this.name ; } public int getAge() { return this.age ; } } public Student extends Person { // Student继承了父类Person /* Student 可以使用 Person 中定义的属性和方法 */ }
同时,子类中也可以定义新的属性和方法
class Person { private String name ; private int age ; public void setName (String name) { this.name = name ; } public setAge(int age) { this.age = age ; } public String getName() { return this.name ; } public int getAge() { return this.age ; } } public Student extends Person { // Student继承了父类Person private String school ; public void setSchool (String school) { this.school = school ; } public void getSchool () { return this.school ; } }
实现继承功能:
子类可以直接将父类的操作继续使用,属于代码重用 ;
子类可以扩充定义新的属于子类的属性和方法,不改变父类原有的结构标准 ;
l 在父类中被定义为private属性的内容不可以被子类调用
继承的限制:
利用extends关键字,在大多数的i情况下不用考虑继承限制的问题;
针对于继承也有继承的要求:
1、 Java不允许多重继承。一个子类不可继承多个父类;一个子类只有一个父类,一个子类则可以是一个被继承的父类。Java不允许多继承,若想实现一个子类实现继承多个父类的功能,可以采用多层继承,即B继承A,C继承B 就实现了C继承了A和B类的功能(没有继承层数限制,但不易超过三层)。
2、 子类在继承父类的时候,严格来讲会继承父类的全部操作;但对于Private(私有)操作属于隐式继承,非私有性操作属于显式继承。【在外部调用子类时候,可以使用子类继承的父类private属性,但式在子类中则不可以使用自己继承的private属性——“只可以间接的使用子类继承父类的private私有属性,属于隐式继承,而可以直接使用子类继承父类的非私有属性,属于显式继承” 】(super)
3、 在子类对象构造之前,一定会默认调用父类的无参构造,以保证父类的对象先实例化,而后在实例化子类对象 ; 对于子类构造而言,就相当于隐含了一个“super()”——父类中没有无参构造方法,就必须在子类中使用 super() 明确调用父类的有参构造方法。【通过super()将父类需要的构造参数传给父类】super()主要作用是由子类调用父类的构造方法,故此,super必须放在子类构造方法的首行(和this()不能同时出现;且子类构造实例化前一定先实例化父类构造)
super()和this()问题研究:
1、 super(参数):调用基类(父类)中的某一个构造函数(默认)
2、 this(参数):调用本类中的另一种形成的构造函数
3、 super()和this()都在构造函数第一行,但不可以同时存在
4、 super:引用当前对象的直接父类的成员(用来访问父类中的隐式继承属性和方法函数)
5、 this:表示引用当前对象名
— this()和super()都要在构造函数的首行。
Java 继承学习的更多相关文章
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
1.有时候Android系统配置的UI控件,不能满足我们的需求,Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高. ...
- 学习博客之Java继承多态接口
这一篇博客主要是对软工前一阶段学习的总结,主要是对Java的学习总结,包括三部分:Java的继承.多态和接口 Java的继承 继承是面向对象的三大特性之一,能够实现软件的复用. Java子类继承父类的 ...
- Android(java)学习笔记147:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
1. 有时候Android系统配置的UI控件,不能满足我们的需求,Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高 ...
- java基础学习笔记六(继承)
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...
- Java多线程学习笔记
进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- 【09-23】js原型继承学习笔记
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
随机推荐
- mybatis 简单实现 left join
sql -- 表a ta (id,aname,bid) -- 表b tb (id,bname) SELECT T1.*, T2.BNAME FROM TA T1 LEFT JOIN TB T2 ON ...
- 在APP中集成iAd Banner展示广告盈利
如果你已经做了一款超牛X的APP.你也许还有一件是需要操心.APP够好了,怎么盈利呢?你可以对下载你的APP的用户收费.也可以完全的免费,然后在APP里放广告来实现盈利.现在来说,除非一款APP真的是 ...
- 设计模式11---组合模式(Composite Pattern)
一.组合模式定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性.Compose objects into tree structures to re ...
- Sed的使用方法简介
=============Sed================== Sed:是一款流编辑工具,用来对文本进行过滤与替换工作,特别是当你想对几十个配置文件进行统一修改时,你会体会到它的魅力:Sed通过 ...
- 怎么用谷歌浏览器查看请求或响应HTTP头?
要使用谷歌浏览器查看请求或响应HTTP标头,可以采取以下步骤: 在Chrome浏览器,访问一个网址,点击右键,选择检查,打开开发人员工具(或直接按F12). 选择 Network 选项卡. 重新加载页 ...
- JDK安装目录分析-两个jre和三个lib
安装JDK后,Java目录下有jdk和jre两个目录,但jdk下还有一个jre目录,而且这个jre比前面那个jre在bin目录下少了个server文件夹(Server端的Java虚拟机)!前一个jre ...
- 【题解】 LA3708 Graveyard
题目大意 在一个圆周长为10000的圆上等距离分布n个雕塑,现在有m个新加入的雕塑(还是要求等距离摆放),问n个雕塑移动的总距离的最小值. Solution 显然必然会有一个雕塑不移动,所以可以直接不 ...
- “全栈2019”Java第七十二章:静态内部类访问外部类成员
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 【转】C#具名参数和可选参数
源地址:https://www.cnblogs.com/similar/p/5006705.html 另:可选参数的一个陷阱 参考:https://www.cnblogs.com/still-wind ...
- bzoj 4283 魔法少女伊莉雅
题目大意 给定一个 $n$ 个点 $m$ 条边的带正权无向图.要求找一条路径满足: 它是一条简单路径 它是一条严格次短路 对于任何一条可能存在于最短路上的边,不能包含它的反向边. 不存在这条路径输出 ...