Java_继承
继承的格式
继承它描述的是两个类之间的关系,如果一个子类继承父类,那么子类可以使用父类非私有的成员。
1 public class 父类{
2 //成员变量
3 //成员方法
4 }
5
6 public class 子类1 extends 父类{
7
8 }
9
10 public class 子类2 extends 父类{
11
12 }
继承的好处和弊端
1.提高了代码的复用性,可维护性
2.增强了耦合性(类与类之间的关系过于紧密)
什么时候使用继承?
类与类之间有共性的成员变量或者成员方法,才使用继承。 【共性抽取】
满足 is a的关系就可以使用继承。
猫 是 动物的一种, 猫继承动物
苹果 是 水果的一种,苹果继承水果
Java继承的特点
1.Java只支持单继承
一个儿子只能有一个爸爸
2.Java可以多层继承
儿子可以有一个爸爸,爸爸也可以有一个爸爸
注意:在Java中所有的类都直接或者间接的继承Object类
继承中成员的访问特点
1.成员变量的访问特点
遵循就近原则:子类有就用子类的,子类没有再找父类。
1 public class Fu{
2 int num=10;
3 }
4 public class Zi extends Fu{
5 int num=20;
6
7 public void show(){
8 int num=30;
9 System.out.println(num); //30
10 System.out.println(this.num); //20
11 System.out.println(super.num); //10
12 }
13 }
2.成员方法的访问特点
遵循就近原则:子类有就用子类的,子类没有再找父类。
如果子父类有同名的成员方法啊,可以使用this和super进行区分。
1 public class Fu{
2 int num=10;
3
4 public void show(){
5 System.out.println("fu...show");
6 }
7 }
8
9 public class Zi extends Fu{
10 public void show(){
11 System.out.println("zi...show");
12 }
13
14 public void method(){
15 this.show(): //调用本类自己的show方法
16 super.show(); //调用父类的show方法
17 }
18 }
3.构造方法的访问特点
1)所有子类的构造方法中,都会默认的去访问父类的空参数构造方法
原因是在构造方法的第一行,隐藏的有一个 super()
2)如果不想让子类去访问父类的空参数构造方法,可以手动的使用 super(参数) 去访问父类有参数的构造方法
【注意:this()或者super()去访问构造方法,只能写在构造方法的一条语句】
this和super的用法
1 this: 本类对象的引用
2 this.成员变量 调用本类的成员变量
3 this.成员方法 调用本类的成员方法
4 this(...) 调用本类的构造方法
5
6 super: 父类对象的引用
7 super.成员变量 调用父类的成员变量
8 super.成员方法 调用父类的成员方法
9 super(...) 调用父类的构造方法
下图是this和super调用构造方法的执行流程。

方法重写
方法重写:在子父类中继承关系中,子类和父类中有一模一样的方法。 这种现象叫做方法重写
【意义:方法重写,既能保证父类的方法不变,子类也有自己的实现】
方法重载:在同一个类中,有多个相同名称的方法,参数列表不同。这种现象叫做方法重载
【方便取名字,调用起来更加方便】
方法重写的注意事项:
1.父类的私有方法不能被子类重写
2.父类的静态方法不能被子类重写
3.子类重写父类的方法权限必须大于或者等于父类
1 public > protected > 默认的(不写) > private
2 用得比较多的是public和private
继承的案例

Java_继承的更多相关文章
- java_继承、实现、依赖、关联、聚合、组合的代码表示
一.继承.实现.依赖.关联.聚合.组合的简单代码表示 1.继承关系 1).文字描述 一个类或者接口继承了另一个类或者接口,增加了在原有的方法和属性上增加了新的方法和属性. 2).代码表示 class ...
- 学习笔记 Java_静态_继承 2014.7.12
一.静态 1.构造函数: 特点: 1. 函数名和类名同样. 2. 不用定义返回值类型(和void不是一回事,而构造函数是根本不用定义返回值类型). 3. ...
- java_基础_关于父类继承的问题
关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向 ...
- ooday03 Java_引用类型数组_继承_super_向上造型
引用类型数组: 点击查看代码 1)Bomb[] bs = new Bomb[3]; bs[0] = new Bomb(100,200); bs[1] = new Bomb(200,300); bs[2 ...
- Java_观察者模式(Observable和Observer) -转
原文地址: Java_观察者模式(Observable和Observer) 一.观察者模式介绍 在Java中通过Observable类和Observer接口实现了观察者模式.一个Observer ...
- Java_框架面试题
Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础 ...
- Java_集合面试题
Java_集合面试题 0.链表,队列和栈的区别? 链表是一种存储结构,指得是存储时候除了要存储数据元素之外,还要用数据元素一起的另外空间存储数据元素的关系. 队列和栈都是线性表,属于逻辑结构范畴,都是 ...
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JavaScript的继承实现方式
1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...
随机推荐
- 《C++反汇编与逆向分析技术揭秘》--数据类型
浮点数类型 IEEE标准从逻辑上采用一个三元组{S, E, M}来表示一个数N,它规定基数为2,符号位S用0和1分别表示正和负,尾数M用原码表示,阶码E用移码表示.根据浮点数的规格化方法,尾数域的 ...
- Redis扩展数据类型详解
在Redis中有5种基本数据类型,分别是String, List, Hash, Set, Zset.除此之外,Redis中还有一些实用性很高的扩展数据类型,下面来介绍一下这些扩展数据类型以及它们的使用 ...
- shell算数和逻辑运算
算术运算 Shell允许在某些情况下对算术表达式进行求值,比如:let和declare 内置命令,(( ))复合命令和算术扩 展.求值以固定宽度的整数进行,不检查溢出,尽管除以0 被困并标记为错误.运 ...
- 201871030140-朱婷婷 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 实验三 结对项目 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程:2.掌握GitHub协作开发程序的操作方法. 这个 ...
- CentOS更换aliyun镜像站
目录 1. 官方地址 2. 社区文档 3. 镜像更换 3.1 配置方法: 3.1.1. 备份原配置文件 3.1.2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ ...
- 【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)
Terraform(全称:Hashicorp Terraform )是一种开源工具,用于预配和管理云基础结构. 它将基础结构编入描述云资源拓扑的配置文件中. 这些资源包括虚拟机.存储帐户和网络接口等. ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05 欢迎加QQ群:1026880196 进行交流学习 #全部节点执行如下操作 1. 安装常 ...
- JVM调优基础到进阶
GC和GC Tuning GC的基础知识 1.什么是垃圾 C语言申请内存:malloc free C++: new delete c/C++ 手动回收内存 Java: new ? 自动内存回收,编程上 ...
- netcore获取配置文件的内容
结合了好几个哥们的写法,最终我使用了这个版本,现在把我这个版本的写出来,如果该版本和您的版本类似或者一样,那可能是借鉴您的 using Microsoft.AspNetCore.Hosting; us ...
- 最新版Theos.2016.08的安装方法
http://bbs.pediy.com/showthread.php?t=212425 标题: [翻译]手把手安装最新版Theos.2016.08作者: roysue时间: 2016-08-26,1 ...