撰写时间: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 )相关推荐

  1. Java——继承——Extends

    继承 为什么要继承呢? 继承的语法 继承的概念 子类中访问父类性质 Java的单继承 super和this 子类构造方法 protected中super的使用 final关键字 今天我们来说说面向对象 ...

  2. java继承extends

    一.什么是继承 继承:在现实世界当中也是存在的. 例如:父亲很有钱,儿子不用努力也很有钱. 二.继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要的作用,是基本作用.) 主要作用: ...

  3. java 继承extends

    继承 1.1继承的概述 继承是面向对象的三大特征之一,可以使得子类具有父类的属性和方法,还可以在类中重新定义,追加属性和方法. 格式: public class 子类名 extends 父类名{} 范 ...

  4. java 继承 extends

    extends来表示继承关系 class 父类 {}class 子类 extends 父类 {} this super 子类重写父类方法,使用this调用子类的方法,使用super调用父类的方法 cl ...

  5. JAVA继承extends小练习①

    分析以下需求,并用代码实现 1.定义Person类 属性: 姓名name.性别gender.年龄age.国籍nationality: 方法:吃饭eat.睡觉sleep,工作work. 2.根据人类,创 ...

  6. java 继承 冒号_java继承(extends)简单介绍

    继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...

  7. 继承(extends)

    继承(extends) 开发工具与关键技术:eclipse java 作者:梁峻豪 撰写时间:2021.5.8 Java继承(extends) Java中的继承就是在已经存在类的基础上进行扩展,从产生 ...

  8. Java继承 implements 与 extends 总结

    关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法.实现一个接口,必须实现接口中的所有方法.使用 implements 关键字可以变相的使java具有多继承的 ...

  9. java 继承 extends_java中的继承 (extends) 详解

    继承(extends) 1. 父类与子类 父类也叫基类.超类  子类也叫派生类  在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...

  10. 继承extends(Java)

    继承extends(Java) 代码一: package JavaSE.java基础语法.src.oop.Demo05; //继承关系 //A extends B 父子关系 A是子类 B是父类 //A ...

最新文章

  1. Linux之复制、移动文件及目录命令
  2. PHP特级课视频教程_第二十八集 PHP搜索代码测试_李强强
  3. 【Android】Android取消EditText自动获取焦点
  4. 联发科有没有高端处理器_联发科陷入“危机”,高端处理器无人使用,只能依靠OPPO?...
  5. python3下载文件-使用Python 3从网上下载文件
  6. es6 --- 使用生成器交替执行
  7. Failed to compile. ./src/utils/request.js Module not found: Error: Can‘t resolve ‘util-merge‘ in ‘C
  8. antd radio设置默认选中_单选框radio总结(获取值、设置默认选中值、样式)
  9. Java笔记-Semaphore简单应用实例
  10. 数据结构——树的概述
  11. 《腾讯iOS测试实践》一一1.8 小结
  12. 基于centos7进行yum安装lnmp linux+nginx+php7.1+mysql5.7
  13. 视频教程-Visio应用视频教程(下)-Office/WPS
  14. java学生选课系统_JAVA | 学生选课系统
  15. HTML 数据可视化模板 echarts实现
  16. 模拟电子技术动画-PN结(动画是转的)内容再修改
  17. 一款集成微信小助手的mac微信最新版!支持发朋友圈!
  18. php网络编程socket通讯
  19. R语言独立样本的 t 检验
  20. 成都开发者看过来!百度资深研发工程师将出席超级账本成都见面会

热门文章

  1. File.separator用法
  2. Android本地视频出现无法播放此视频问题
  3. Powell算法、Powell修正算法_matlab仿真
  4. 【重要】一部手机失窃而揭露的黑色产业链—完整修订版
  5. 计算机程序漏洞用英语怎么说,漏洞用英语怎么说
  6. 【Java】接口与继承
  7. python速度比较_列表与元组的速度比较
  8. JS: onfocus和onblur事件应用举例
  9. F - 郭鑫的难题(三)
  10. python 复制某文件到另一个文件夹