JAVA篇<一> 继承extends(已转移到JAVA总结篇)
前题:如果不经过指出继承,那么所有的类都继承了JAVA中的Object类。
正文:
继承的关键字是:extends,是所有面向对象语言的重要特性。
例public class TestExtends {
public static void main(String[] args){
Student stu = new Student();
stu.name = "kk";
stu.height = 172;
stu.rest();
Student stu2 = new Student("xx",150,"Science");
}
}
class Person{
String name;
int height;
public void rest(){
System.out.println("休息一会儿!");
}
}
class Student extends Person{
String major;
public void study(){
System.out.println("学习俩小时!");
}
public Student(){};
public Student(String name,int height,String major){
this.name = name;
this.height = height;
this.major = major;
}
}
在上例子中我们首先定义了一个Person类,这是一个父类。而之后又定义了一个Student类,Student属于从父类Person中派生出的子类。

当两个类存在继承关系当时候,子类会自动继承父类的属性和方法,那么子类中还可以使用父类的属性和方法。在JAVA中只允许单继承,一个子类只能有一个父类,但是一个父类却可以派生出多个子类。
子类不仅仅继承了父类的属性与方法,还可以发挥出自己的“特长”。比如在父类Person中我们定义了一个简单的“人”,这个类中包含基本信息有名称name和身高height。这个抽象的“人”可以完成的动作是休息rest。
而从一个抽象的人派生出的子类Student就更加具体了。简单来说子类就是把父类更加细化和丰满的一个过程。从Person中诞生了Studnet,Student毫无疑问当然是Person的一员。但是Student却具有着Person大众所不具有的属性(代码段中并未展开),比如学号,比如成绩单等。这样我们就从一个抽象概念的人中拿出了一个有血肉的个体概念。
引入了Person类以后我们还可以从Person类中派生出Teacher、Parent等子类,这样所有子类就可以共用到Person类的属性与方法。在同一个具体项目之中,互相有联系的对象都是从同一个父类中派生出来的,这样有助于规范代码,同时节省操作量。
规范:
1、针对属性
1)子类能够继承父类的public和protected成员变量,并不能继承父类的private成员变量。
2)对于父类的包访问权限成员变量(default,如果不加权限修饰符就默认为default),必须当子类与父类在同一包下才能继承,否则子类不能继承。
3)当子类中出现与父类同名的成员变量时时候,父类的成员变量会被隐藏。即在调用子类对象时候出现的是子类的成员变量。如果要在子类中访问父类的同名成员变量,需要用super关键字来引用。
2、针对方法
1)同上述针对属性--->1)
2)同上述针对属性--->2)
3)如果在子类中出现了与父类同名的成员方法,则子类方法会把父类方法覆盖掉。要调用父类同名方法则要使用super关键字。(这一点很方便的是,可以仅仅在父类中写一个概念性的空方法,而在每个具体子类中对这个空方法根据子类对象具体特点来重写。)
3、针对构造器
子类不能够继承父类的构造器。但是当父类当构造器带有参数时,子类构造器中必须现实通过调用super关键字来调用父类哦构造器并且配上适当的参数列表。如果父类构造器无参,则不需要用super调用父类构造器。如果没有使用super,则系统会自动调用父类的无参构造器。
JAVA篇<一> 继承extends(已转移到JAVA总结篇)的更多相关文章
- Java面向对象之继承extends 入门实例
一.基础概念 (一)继承的好处: 1.继承:提高了代码的复用性. 2.让类与类之间产生了关系,给多态这个特征提供了前提. (二)继承的种类: 1.单继承:一个类只能有一个父类. 2.多继承:一个类可以 ...
- 【已转移】【Java架构:基础技术】一篇文章搞掂:Java 8
本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 一.Java的历史与演变 目的:为完全了解Java,需要理解Java的诞生原因.成型动力以及他继承的思想. 计算机语言的创新与发展 ...
- 【已转移】【Java架构:基础技术】一篇文章搞掂:Spring
本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文是对<SPRING实战第4版>的总结,大家也可以去仔细研读该书 [------------------------ ...
- JAVA 继承 extends
/* 继承 1.提高了代码的复用性,简化了代码 2.让类与类之间产生了继承关系,才有了后面的多态的特性的存在 注意:千万不要为了获取其它类的功能简化代码,而建立继承关系, 必须要类与类之间存在继承关系 ...
- extends:类似于java中的继承特征,extends="struts-default"
extends:类似于java中的继承特征,extends="struts-default"就是继承struts-default.xml,它里面定义了许多跳转类型.拦截器等一些常用 ...
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有 ...
- java 继承extends 的相关知识点
java只有单继承,不能多继承 子类只能继承父类的非私有成员(成员变量.成员方法) 子类不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法 继承 要体现子类父类的 继承关系, ”i ...
- 面试又被 Java 基础难住了?推荐你看看这篇文章。
本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 1. 面向对象和面向过程的区别 面向过程 :面向过程性能比面 ...
- Java集合最全解析,学集合,看这篇就够用了!!!
在看集合类之前, 我们要先明白一下概念: 1.数据结构 (1):线性表 [1]:顺序存储结构(也叫顺序表) 一个线性表是n个具有相同特性的数据元素的有限序列.数据元素是一个抽象的符号,其具体含义在不同 ...
随机推荐
- linux虚拟机 在install yum时提示无法获得锁 var/lib/dekg/lock时该如何解决?
起因 在新虚拟机中使用yum命令时提示要安装,安装过程中提示出错. 问题 在sudo apt install yum时提示下列错误该如何解决? E: 无法获得锁 /var/lib/dpkg/lock ...
- pgsql事务与并发控制
事务与并发控制 事务的基本的概念和性质 ACID: 原子性:一个事务要么全部执行,要么全部不执行 一致性:执行事务的时候,数据库从一个一致的状态变更到另一个状态 隔离性: 确保在并发执行的时候,每个事 ...
- html页面中引入自签名证书的js web资源出现net::ERR_CERT_AUTHORITY_INVALID
其实是浏览器客户端对自签名的内容认为不安全引起的,临时方法可以再浏览器中先直接访问下那个自签名的https地址,然后再访问有引用的那个页面就可以了. 以下内容引用自https://www.morong ...
- 分布式监控系统开发【day38】:报警策略设计(二)
一.策略和动作多对多的好处坏处 1.好处: 相同服务,相同策略的服务可以不用重复写好多次触发器 2.坏处: 1.策略A给小李和小罗发邮件2.策略B给小胡和小崔发邮件3.策略A是第三部发邮件4.策略B是 ...
- 深入jar包:从jar包中读取资源文件getResourceAsStream
一.背景 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等). 在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不 ...
- Entity Framework入门教程(14)---DbFirst下的存储过程
EF6中DbFirst模式下使用存储过程 我们已经知道EF可以将L2E或Entity SQL的查询语句自动转换成SQL命令,也可以根据实体的状态自动生成Insert/update/delete的Sql ...
- django - 总结 - ORM性能
QuerySet 1.惰性查询 2.缓存机制 3.可迭代 4.可切片 -------------------------------------------------------在一个新创建的查询集 ...
- [物理学与PDEs]第3章习题3电磁场的矢势在 Lorentz 规范下满足的方程
设 $\phi$ 及 ${\bf A}$ 分别为电磁场的标势及矢势 (见第一章 $\S$ 6). 试证明: 若 $\phi$ 及 ${\bf A}$ 满足条件 $$\bex \phi+\cfrac{1 ...
- Pytorch中的自动求导函数backward()所需参数含义
摘要:一个神经网络有N个样本,经过这个网络把N个样本分为M类,那么此时backward参数的维度应该是[N X M] 正常来说backward()函数是要传入参数的,一直没弄明白backward需要传 ...
- 通俗易懂的vuex-demo
在main.js引入store.js