首页 > 编程语言 >Java---继承

Java---继承

时间:2023-10-05 22:00:26浏览次数:44  
标签:Java 继承 子类 --- 食草动物 父类 方法 属性

继承的概念

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

需要注意的是,子类无法继承父类私有的对象和方法

生活中的继承

 食草动物和食肉动物都属于动物,此时动物是父类,食草动物和食肉动物是子类,两者继承了动物父类的非私有对象和方法。

虽然食草动物和食肉动物都属于动物,但两者的属性(种类,颜色等)和方法(捕食,玩耍)还是有一定的差距的,所以子类也具有父类所没有的自身的特性。

羊和兔子属于食草动物的子类,狮子和豹子属于食肉动物的子类。

代码实现

 通过extends关键字可以实现类与类之间的继承

继承的由来

接下来我们通过实例来说明这个需求。

开发动物类,其中动物分别为企鹅以及老鼠,要求如下:

  • 企鹅:属性(姓名,id),方法(吃,睡,自我介绍)
  • 老鼠:属性(姓名,id),方法(吃,睡,自我介绍)

企鹅类

 老鼠类

 从以上代码可以看出,他们有大量的属性和方法发生的重复,这会导致代码臃肿且后期不好维护,容易出错,此时就需要用到继承,可以将上述代码进行如下简化

 

 继承的类型

Java中可以实现的继承类型有:单一继承,多重继承,多级继承、分层继承和混合继承。

 

 java类中继承

在类的基础上,java中可以有三种类型的继承:单一继承、多级继承、分层继承

继承的特点

  1.只支持单继承,即一个子类只允许有一个父类。

  2. 子类可以拥有父类的属性和方法

  3. 子类可以拥有自己的属性和方法

  4. 子类可以重写覆盖父类的方法

继承的运用

extends:用来进行继承的实现

super关键字:通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用。

 

 运行结果

 需要注意的是,子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。

标签:Java,继承,子类,---,食草动物,父类,方法,属性
From: https://www.cnblogs.com/collected/p/17743863.html

相关文章

  • java面向对象
    一面向对象和面向过程面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分面向过程(算法+数据结构=程序)规模比较小的问题,分解为过程的开发方式比较理想面向功能划分软件结构以方法为单位面向对象(数据在第一位,再考虑......
  • 本振系统设计-三种频率合成技术
    频率合成技术主要分为直接合成技术与间接合成技术。直接合成技术又包括直接模拟合成技术与直接数字合成技术(DDS)。直接模拟合成技术是最早期的频率合成技术,其通过一系列的模拟器件进行倍频、混频、分频等算术运算从而合成固定频率,再利用窄带滤波器滤出所需频率。......
  • 14代i5-14600K现身:多核性能提升多达11%
    14代酷睿桌面端还未发售,就陆续在跑分平台上露出。平台规格为Z790主板、32GBDDR5-5200内存,酷睿i5-14600K的单核成绩为2819,多核成绩为16666,对比酷睿i5-13600K,提升幅度分别是5.7%、11.2%。从页面来看,酷睿i5-14600K的基础频率在3.5GHz,最大睿频尚未得知,预测可能高达5.7GHz-5.9GHz。......
  • chisel安装和使用+联合体union的tagged属性+sv读取文件和显示+sv获取系统时间+vcs编译
    chisel安装和使用sbt:scalabuildtool,是scala的默认构建工具,配置文件是build.sbt。mill:一个新的java/scala构建工具,运行较快,与sbt可以共存,配置文件是build.sc。chisel的安装可以参考这篇文章。安装过程务必联网,而没有联网情况下的安装,按照其它的说明,如移动缓存文件等,并无法正常......
  • 动态规划--DP
    动态规划动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。背包01背包每个物体只有两种可能的状态(取与不取),对应二进制中的\(0\)和\(1\),这类问题便被称为「0-1背包问题」。状态转移方程:\[f_{i,j}=\max(f_{i-1,j},f_{i-1,j-w_{i}}+v_{i})\]这......
  • 38-5
    编写带头结点的算法,就地逆置小心断链#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}LNode,*LinkList;voidTailCreate(LinkList&L){L=(LinkList)malloc(sizeof(LNode));L->next=NULL;LNode......
  • 2023-2024-1 20231415吴昕洋 《计算机基础与程序设计》第一周学习总结
    这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求是什么2023-2024-1-计算机基础与程序设计第一周作业这个作业的目标简单浏览《计算机概论》,提出疑问,并尝试解决问题作业正文https://i.cnblogs.com/posts/edit教材内容·学习总结  ......
  • 38-4
    编写在带头结点的单链表L中删除最小值结点的高效算法,最小值结点唯一先在while中找到最小值结点,再释放空间#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}LNode,*LinkList;voidTailCreate(LinkList&L){L=(Lin......
  • 办公小程序-创建
       配置tomcat:server:tomcat:uri-encoding:UTF-8threads:max:200min-spare:30connection-timeout:5000msport:8080servlet:context-path:/emos-wx-api配置mysql数据源:spring:datasource:type:com.......
  • 38-3
    设L为带头结点的单链表,编写算法实现从尾到头输出。有两种方法1、递归空间复杂度O(1)2、栈空间复杂度O(N)仅实现了递归算法。#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}LNode,*LinkList;voidTailC......