首页 > 编程语言 >JAVA——继承详解

JAVA——继承详解

时间:2023-05-14 10:37:36浏览次数:38  
标签:JAVA 继承 子类 方法 详解 父类 重写

JAVA——继承详解

继承是面向对象三大特征之一,可以让类跟类之间产生父子关系

可以把多个子类中重复的代码抽取到父类中,子类可以直接使用,减少代码重复,提高代码的复用性

格式:public class 子类 extends 父类 {}

继承后子类的特点

  1. 子类可以得到父类的属性和行为,子类可以使用

  2. 子类可以在父类的基础上新增其他功能,子类更强大

  • JAVA只能单继承,一个类只能继承一个直接父类

  • JAVA不支持多继承,但是支持多层继承

  • JAVA中所有类都直接或间接继承Object类

 

java子类只能访问父类中非私有制的案例

 

子类能继承父类中的那类内容

构造方法非私有不能private不能
成员变量 非私有能 private能
成员变量 虚方法表能 否则不能

 

继承中成员变量访问特点:就近原则

现在局部位置找,本类成员位置找,父类成员位置找,逐级往上

  • name从局部位置开始往上找

  • this.name从本类成员位置开始往上找

  • super.name从父类成员位置开始往上找

方法的重写

当父类的方法不能满足子类现在的需要时,需要进行方法的重写

书写格式

在继承体系中,子类出现和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法

@Override重写注解

  1. @Override是放在重写后的方法上,校验子类重写是语法是否正确

  2. 加上注解后如果有红色波浪线,表示语法错误

  3. 建议重写方法都加@Override注解,代码安全

注意事项

  1. 重写方法的名称,形参列表必须与父类一致

  2. 子类重写父类方法时,访问权限子类必须大于等于父类(空着不写<protected<public)

  3. 子类重写父类方法时,返回值类型必须小于等于父类

  4. 建议:重写的方法尽量和父类一致

  5. 只由被添加到虚方法表中的方法才能被重写

继承中构造方法的访问特点

  1. 子类不能继承父类的构造方法,但是可以通过super调用

  2. 子类构造方法第一行,有一个默认的super();

  3. 默认先访问父类中无参的构造方法,在访问有参构造

  4. 如果想要方法父类有参构造,必须手动书写

标签:JAVA,继承,子类,方法,详解,父类,重写
From: https://www.cnblogs.com/longlonglong777/p/17398833.html

相关文章

  • 长文图解:详解金字塔原理如何应用于架构设计
    0文章概述大家想一想工作中有没有遇到以下情况:一位同事用了很长时间罗列了很多事实和数据向你说明一件事情,但是你听完根本不知道他想要说什么。一位同事用了大量笔墨编写了技术方案,不仅有文字还有图表,但是你看完也不知道这个方案到底要解决什么问题以及如何落地。上述情况的出......
  • 【❂Java集合】循环链表和双向链表的区别是是什么
    最后一个结点指针指向不同在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是像双向链表那样置为NULL。此种情况还用于在最后一个结点后插入一个新的结点。判断链域值不同在判断是否到表尾时,是判断该结点链域的值是否是表头结点,当链域值等于表头指针时,说明已到......
  • java基于springboot基于vue的地方美食分享网站、美食管理系统,附源码+数据库+lw文档+PP
    1、项目介绍java基于springboot基于vue的地方美食分享网站、美食管理系统。(a)管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,外国美食管理,中式美食管理,热门菜品管理,论坛管理,我的收藏管理,留言板管理等功能。(b)用户;用户使用本系统涉到的功能主要有:首页,外国美食,......
  • 6-JavaScript基础
    1.JavaScript简介JavaScript是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。JavaScript是用来控制网页行为的,它能使网页可交互......
  • java流程控制
    流程控制用户交互java通过Scanner类来获取用户输入基本语法Scannerin=newScanner(System.in);之后通过Scanner的next()和nextLine()获取输入字符串,读取前一般用hasNext()和hasNextLine()判断是否还有输入数据Scannerin=newScanner(System.in);if(in.hasNext()){......
  • Java Socket编程
    一:Socket介绍Socket(中文:套接字)编程是网络常用的编程,我们通过在网络中创建Socket关键字来实现网络间的通信;要想解释清楚Socket,首先要知道TCP,要想知道TCP,那就得对TCP/IP的体系结构以及每一层的大概工作有所了解,那么我们就先来说说TCP/IP的分层。1:ISO/OSI和TCP/IP模型其实......
  • 【nodejs基础】Expres编写接口详解05
    一、使用Express写接口浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域接口的跨域问题刚才编写的GET和POST接口,存在一个很严重的问题:不支持跨域请求,解决接口跨域问题的方案主要有两种CORS(主流解决方案,推荐)JSONP(有缺陷:只支持GET请......
  • java如何利用反射实现方法共用?条件:相同的业务逻辑但实体类不同(要求:其使用的方法属性在
    一、情景:在项目开发中经常遇到在两个不同的地方要处理相同逻辑的数据处理,但所使用的实体确是两个实体,且没有继承关系,这样简单的使用泛型就无法实现方法共用,但这样重复的代码在项目中存在实在不是一个优雅的方案,故随着技术水平的提高,不断的研究,终于找到了能解决的方案,故此记录。......
  • Netty 爱好者必看!一文详解 ChannelHandler 家族,助你快速掌握 Netty 开发技巧!
    1Channel接口的生命周期Channel定义了一组和ChannelInboundHandlerAPI密切相关的简单但功能强大的状态模型1.1Channel的状态状态描述ChannelUnregisteredChannel已经被创建,但还未注册到EventLoopChannelRegisteredChannel已经被注册到了EventLoopChannelActiveChanne......
  • 类的继承
    多个类使用相同的方法和属性,应该把相同的方法抽象到父类中,减少代码的冗余A类和B类需要调用相同的方法,创建C类,A和B继承C,A(C),B(C),A的对象和B的对象就可以直接调用C中的方法A和B有相同的方法,一部分功能相同,还有不同的部分,创建父类C,把相同的部分放到C类的方法中,在A/B中保留不同的部分,然......