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); } ...
随机推荐
- P2142_高精度减法(JAVA语言)
思路:BigInteger double kill! //四行搞定 题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输 ...
- Centos7安装以及设置Redis详细步骤
一.Redis安装: 1.指定文件夹下下载redis安装包: [root@bogon ~]# mkdir /usr/local/soft/redis [root@bogon ~]# cd /usr/l ...
- GO基础知识分享
目录 GO基础知识分享 go语言的基本事项 关键字 字符串的拼接和变量的定义方式 空白符 const常量 iota的用法 运算符 Go 没有三目运算符,不能适用?: 语言条件语句 for循环的方式 函 ...
- Python数据分析入门(十):数据清洗和准备
数据清洗是数据分析关键的一步,直接影响之后的处理工作 数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘? 是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作 ...
- js 日期加减
加: console.log(moment().format("YYYY-MM-DD HH:mm:ss")); //当前时间 console.log(moment().add(10 ...
- 面试关于Spring循环依赖问题,我建议你这么答!
写在前面 在关于Spring的面试中,我们经常会被问到一个问题:Spring是如何解决循环依赖的问题的. 这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不 ...
- Dynamics CRM邮箱配置
Dynamics CRM对邮箱有很好的支持,开通邮箱后方便用户通过邮件进行Dynamics CRM的业务处理,同时也可以作为一直消息流提醒的手段应用于审批.通知等场景,可以做一些更深入的功能拓展. 本 ...
- Java常用类库与技巧
Java异常 异常处理机制主要回答了三个问题 What:异常类型回答了什么被抛出 Where:异常堆栈跟踪回答了在哪抛出 Why:异常信息回答了为什么被抛出 Java的异常体系
- hbuilderX打包苹果证书的申请方法
现在uniapp越来越火,hbuilderX和apicloud这些工具使用html+js语言就可以开发强大的app,大大降低了app开发的技术门槛. hbuilderX或apicloud在打包ios应 ...
- SpringBoot自动装配,比较全的吧,来看看吧~
文章挺长,表达不好,希望能有获~~~~~~~ Spring也提供使用注解来注册bean,为什么要用SpringBoot呢? 使用Spring应用,比如SpringMVC还行需要配置ViewResolv ...