Java继承(extends )
撰写时间:2019年04月17日
继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子对象(实例)具有父类的实例域和方法,
或子类从父类继承方法,使得子类具有父类相同的行为。
继承格式:
在Java中通过extends关键字申明一个类继承与另外一个类,一般格式如下:
class 父类 {
}
class 子类 extends 父类 {
}
为什么需要用继承?在正常的情况下,我们编写代码,是会出现代码重复的,这就会导
致后果代码量大且臃肿,而且维护性不高。所以要解决这个代码问题就需要用到继承,
将相同代码部分提取出来组成一个父类,后面需要用到就直接继承父类用需要的那部分。
这样维护性也提高了,代码也简洁,提高代码的复用性。
注意:Java不支持多继承,但支持多重继承
单继承:A<——B
class classA{
}
class classB extendsclassA{
}
多重继承:A<——B<——C 间接继承
class classA{
}
class classB extends classA{
}
class classC extends classB{
}
不同类继承同一个类:A<——B,A<——C
class classA{
}
class classB extends classA{
}
class classC extends classA{
}
不支持多继承
class classA{
}
class classB{
}
class classC extends classA,B{
}
注意:这个多继承是不支持的。
简单示例:
简单的继承
public class ExtendsDemo1 {public static void main(String[] args) {BaseClassB baseClassB=new BaseClassB();System.out.println(baseClassB.intA);baseClassB.print();}
}class BaseClassA{int intA=100;public void print() {System.out.println("-----BaseClassA----");}
}
class BaseClassB extends BaseClassA{}
这里可以看到,在BaseClassB里面是什么都没写的,而上面实例化的就是
BaseClassB,而且还输出intA跟print(),而这两个都是BaseClassA的东西,
这就是用到了关键字extends 让BaseClassB从BaseClassA继承到了变量和方
法,然后BaseClassB就可以调用它们。
ExtendsDemo2 原代码数据
public class ExtendsDemo2 {public ExtendsDemo2() {System.out.println("ExtendsDemo2 构造器");}int weight=0;//private 成员变量private int intPrivate=10; //-方法public void fly() {System.out.println("它是猪,它可以飞"); } public void eatting() {System.out.println("....吃....蕉啦");} public static void print() {System.out.println("print");}
}
输出ExtendsDemo2
public class Demo1 {public static void main(String[] args) {ExtendsDemo2 extendsDemo2=new ExtendsDemo2();extendsDemo2.weight=9;System.out.println(extendsDemo2.weight);extendsDemo2.fly();extendsDemo2.eatting(); }
}
多重继承
ExtendsDemo3 继承ExtendsDemo2 ,ExtendsDemo3 没有自己的变量、方法
public class ExtendsDemo3 extends ExtendsDemo2{}
然后ExtendsDemo4再来继承ExtendsDemo3 ,这时候ExtendsDemo4就通过了
ExtendsDemo3 继承到了ExtendsDemo2的变量方法。
public class ExtendsDemo4 extends ExtendsDemo3 {int a = 0;public ExtendsDemo4() {this.a = 10;System.out.println("Ostrch 构造器");}// 重写fly方法public void fly() {super.fly();// (1)重写了父类的方法又想调用父类的方法就是用superSystem.out.println("虽然它是猪,但它不会飞");privateMethod();}public static void print() {System.out.println("Ostrch print");}private void privateMethod() {System.out.println("privateMethod");}
}
可以对ExtendsDemo2的方法进行重写,重写是子类对父类的允许访问的方法的实现过
程进行重新编写, 返回值和形参都不能改变。 它的好处就是子类可以根据自己的需要,
定义特定于自己的行为。 也就是说子类能够根据 需要实现父类的方法。重写方法不能
抛出新的检查异常,或比被重写方法更加宽泛的异常。
public class Demo1 {public static void main(String[] args) {ExtendsDemo4 extendsDemo4=new ExtendsDemo4();extendsDemo4.weight=50;System.out.println(extendsDemo4.weight);extendsDemo4.fly();extendsDemo4.eatting();ExtendsDemo3.print();ExtendsDemo4.print();//静态要大写 }
}
ExtendsDemo4 多重继承ExtendsDemo2 的方法flu(),将它重写输出。
任何一个类都是有父类的,哪怕没写继承,都有一个公共的父类,哪怕间接继承,都是
从object类继承下来,任何类直接或间接继承object类,object是根类
Java继承(extends )相关推荐
- Java——继承——Extends
继承 为什么要继承呢? 继承的语法 继承的概念 子类中访问父类性质 Java的单继承 super和this 子类构造方法 protected中super的使用 final关键字 今天我们来说说面向对象 ...
- java继承extends
一.什么是继承 继承:在现实世界当中也是存在的. 例如:父亲很有钱,儿子不用努力也很有钱. 二.继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要的作用,是基本作用.) 主要作用: ...
- java 继承extends
继承 1.1继承的概述 继承是面向对象的三大特征之一,可以使得子类具有父类的属性和方法,还可以在类中重新定义,追加属性和方法. 格式: public class 子类名 extends 父类名{} 范 ...
- java 继承 extends
extends来表示继承关系 class 父类 {}class 子类 extends 父类 {} this super 子类重写父类方法,使用this调用子类的方法,使用super调用父类的方法 cl ...
- JAVA继承extends小练习①
分析以下需求,并用代码实现 1.定义Person类 属性: 姓名name.性别gender.年龄age.国籍nationality: 方法:吃饭eat.睡觉sleep,工作work. 2.根据人类,创 ...
- java 继承 冒号_java继承(extends)简单介绍
继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...
- 继承(extends)
继承(extends) 开发工具与关键技术:eclipse java 作者:梁峻豪 撰写时间:2021.5.8 Java继承(extends) Java中的继承就是在已经存在类的基础上进行扩展,从产生 ...
- Java继承 implements 与 extends 总结
关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法.实现一个接口,必须实现接口中的所有方法.使用 implements 关键字可以变相的使java具有多继承的 ...
- java 继承 extends_java中的继承 (extends) 详解
继承(extends) 1. 父类与子类 父类也叫基类.超类 子类也叫派生类 在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...
- 继承extends(Java)
继承extends(Java) 代码一: package JavaSE.java基础语法.src.oop.Demo05; //继承关系 //A extends B 父子关系 A是子类 B是父类 //A ...
最新文章
- Linux之复制、移动文件及目录命令
- PHP特级课视频教程_第二十八集 PHP搜索代码测试_李强强
- 【Android】Android取消EditText自动获取焦点
- 联发科有没有高端处理器_联发科陷入“危机”,高端处理器无人使用,只能依靠OPPO?...
- python3下载文件-使用Python 3从网上下载文件
- es6 --- 使用生成器交替执行
- Failed to compile. ./src/utils/request.js Module not found: Error: Can‘t resolve ‘util-merge‘ in ‘C
- antd radio设置默认选中_单选框radio总结(获取值、设置默认选中值、样式)
- Java笔记-Semaphore简单应用实例
- 数据结构——树的概述
- 《腾讯iOS测试实践》一一1.8 小结
- 基于centos7进行yum安装lnmp linux+nginx+php7.1+mysql5.7
- 视频教程-Visio应用视频教程(下)-Office/WPS
- java学生选课系统_JAVA | 学生选课系统
- HTML 数据可视化模板 echarts实现
- 模拟电子技术动画-PN结(动画是转的)内容再修改
- 一款集成微信小助手的mac微信最新版!支持发朋友圈!
- php网络编程socket通讯
- R语言独立样本的 t 检验
- 成都开发者看过来!百度资深研发工程师将出席超级账本成都见面会