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个具有相同特性的数据元素的有限序列.数据元素是一个抽象的符号,其具体含义在不同 ...
随机推荐
- Python的编码和解码
Python的编码和解码 在不同的国家,存在不同的文字,由于现在的软件都要做到国际化通用,所以必须要有一种语言或编码方式,来实现各种编码的解码,然后重新编码. 在西方国家,没有汉字,只有英文,所以最开 ...
- git添加删除远程tag
git tag -a test20190108_1 -m "fix bug" git push origin test20190108_1 git push origin :ref ...
- vue-cli项目生成
安装vue-cli C:\Users\fei>npm install -g vue-cli npm WARN deprecated coffee-script@1.12.7: CoffeeScr ...
- 通过Visualizing Representations来理解Deep Learning、Neural network、以及输入样本自身的高维空间结构
catalogue . 引言 . Neural Networks Transform Space - 神经网络内部的空间结构 . Understand the data itself by visua ...
- 腾讯云服务器tomcat端口无法访问
第一种情况: 如题:https://console.cloud.tencent.com/cvm/securitygroup 需要去这个地址设置安全组. 说实话,一句mmp不知当讲不当讲.使用说明这块太 ...
- [物理学与PDEs]第2章第3节 Navier-Stokes 方程组
1. 当流体的压力 $p$ 及温度 $T$ 改变时, 密度 $\rho$ 变化很小. 此时可近似地把流体看作是不可压的, 而 $\rho=\const$. 如此, 流体动力学方程组中的质量.动量守恒 ...
- SQL Server 跨服务器操作
Ø 简介 在工作中编写 SQL 时经常会遇到跨库或跨服务器操作,比如查询时,通过 A 服务器的某张表关联 B 服务器某张表,进行连接查询.或者从另一台服务器中的数据,对当前数据库中的数据进行 CRU ...
- 设计模式二: 工厂方法(Factory Method)
简介 工厂方法模式是创建型模式的一种, 核心结构有四个角色: 抽象工厂,具体工厂,抽象产品,具体产品; 实现层面上,该模式定义一个创建产品的接口,将实际创建工作推迟到具体工厂类实现, 一个产品对应一个 ...
- 整理一下C++语言中的头文件
对于每一个像我一样的蒟蒻来说,C++最重要的东西就是头文件的使用了.由于初学,直到现在我打代码还是靠一些事先写好的的头文件,仍然不能做到使用自己需要的.最近看了几位大佬打代码,心中突然闪过要把自己冗长 ...
- DeepLearning.ai学习笔记(五)序列模型 -- week2 自然语言处理与词嵌入
一.词汇表征 首先回顾一下之前介绍的单词表示方法,即one hot表示法. 如下图示,"Man"这个单词可以用 \(O_{5391}\) 表示,其中O表示One_hot.其他单词同 ...