【Java寒假打卡】Java基础-继承

news2024/11/20 4:31:31

【Java寒假打卡】Java基础-继承

    • 一、继承的好处和弊端
    • 二、继承的成员变量访问特点
    • 三、重写方法
    • 四、方法重写的注意事项
    • 五、权限修饰符
    • 六、构造方法

一、继承的好处和弊端

  • 继承的好处

  • 提高了代码的复用性

  • 提高了代码的维护性

  • 让类和类之间产生了关系 是多态的前提

  • 继承的弊端

    • 继承是侵入性的
    • 降低代码的灵活性(继承关系,导致子类必须拥有父类非私有属性和方法 让子类自由的世界中多了一些约束)
    • 增强了代码的耦合性(代码与代码之间存在关联都可以将其称之为耦合)
  • JAVA 不支持多继承 但是支持多层继承

二、继承的成员变量访问特点

  • 先在子类局部范围寻找
  • 子类成员范围寻找
  • 父类成员范围寻找

注意:如果子父类中,出现了重名的成员变量,通过就近原则,会优先使用子类的成员变量,如果一定要使用父类的变量,通过super关键字进行区分。

子类:

package com.ustc.base.DataFormat;

public class B extends A{
    int a  =20;
    public void aa()
    {
        int a = 30;
        System.out.println(a);// 打印30
        System.out.println(this.a);//打印20  子类的成员变量
        System.out.println(super.a);// 打印10 父类的成员变量
    }
}

父类:

package com.ustc.base.DataFormat;

public class A {
    int a = 10;
}


在这里插入图片描述

继承中成员方法的访问特点:

  • 先在子类对象访问一个方法
  • 然后在父类成员范围找

子类:

package com.ustc.base.DataFormat;

public class B extends A{
    int a  =20;
    public void aa()
    {
        int a = 30;
        System.out.println(a);// 打印30
        System.out.println(this.a);//打印20  子类的成员变量
        System.out.println(super.a);// 打印10 父类的成员变量
    }
    public void method()
    {
        System.out.println("子类的方法");
    }

    public void test()
    {
        super.method();
        this.method();
    }

}


父类:

package com.ustc.base.DataFormat;

public class A {
    int a = 10;

    public void method()
    {
        System.out.println("父类的方法");
    }
}

三、重写方法

方法重写的使用场景:当子类需要父类的功能,而功能主体子类有自己特有的内容,可以重写父类中的方法,这样,即沿袭了父类的功能,有定义了子类特有的内容。

父类:

package com.ustc.base.DataFormat;

public class fu {

    public void A()
    {
        System.out.println("父类的方法");
    }
}


子类:

package com.ustc.base.DataFormat;

public class zi extends fu{

    // 重写父类的方法
    @Override
    public void A() {
        super.A();// 首先调用父类的方法
        System.out.println("子类的扩展部分");// 子类的扩展部分
    }
}


重写与重载的区别:

  • 方法重写:在继承体系中,子类出现了和父类一摸一样的方法声明(方法名,参数列表,返回值类型)
  • 方法重载:在同一个类中,方法名相同,参数列表不同,与返回值无关

四、方法重写的注意事项

  • 父类的私有方法子类不可以进行重写
  • 父类的静态方法必须是子类的静态方法改写,非静态方法必须是非静态方法进行重写
  • 其实静态方法不可以被重写,如果子类中也存在一个方法声明一摸一样的方法,可以理解为,子类将父类中同名的方法,隐藏起来,并非是方法重写
  • 子类重写父类方法时,访问权限必须大于等于父类

五、权限修饰符

在这里插入图片描述

六、构造方法

在这里插入图片描述

Person:


package com.ustc.base.sup;

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
        System.out.println("父类有参数构造方法");
    }

    public Person(){
        System.out.println("父类无参数构造方法");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}



Student

package com.ustc.base.sup;

import java.util.stream.StreamSupport;

public class Student extends Person{
    private int score;

    public Student()
    {
        // 子类在初始化之前,一定要先完成父类数据额初始化
        // 子类在初始化之前 一定要先访问父类的构造方法  完成父类数据的初始化
        // 系统在每一个构造方法中 默认隐藏一句代码super()
        super();
        System.out.println("子类的构造方法");
    }

    public Student(String name,int age,int score)
    {
        super(name,age);
        this.score = score;
        System.out.println("子类带参数的构造方法");
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

package com.ustc.base.sup;

public class test {
    public static void main(String[] args) {
        Student s = new Student("xxx",9,9);
    }
}


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink-使用filter和SideOutPut进行分流操作

文章目录1.什么是分流?2. 过滤器(filter)3. 使用侧输出流(SideOutput)💎💎💎💎💎 更多资源链接,欢迎访问作者gitee仓库:https://gitee.com/fanggaolei/learni…

四、网络层(七)网络层设备

目录 7.1 路由器的组成和功能 7.2 路由表与路由转发 7.1 路由器的组成和功能 路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(可以是异构的)并完成路由转发。在多个逻辑网络(即多个广播域&#xff…

Vulnhub靶机:HACKADEMIC_ RTB1

目录介绍信息收集主机发现主机信息探测网站探测Sql注入挂马提权介绍 系列:Hackademic(此系列共2台) 发布日期:2011年9月6日 难度:初级 运行环境:VMware Workstation 目标:取得 root 权限 flag…

5W2H分析法

什么是5W2H 5W2H分析法又叫七何分析法,是二战中美国陆军兵器修理部首创。简单、方便,易于理解、使用,富有启发意义,广泛用于企业管理和技术活动,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑…

【UE4 第一人称射击游戏】07-添加“AK47”武器

素材资料地址: 链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg 密码:jlhr 效果: 步骤: 1.打开“WalkRun_BS”,将内插时间改为1 2.创建一个文件夹,命名为“Weapons” 进入“Weapons”…

可视化数据图表-FineReportJS实现清空控件内容

1. 概述 1.1 问题描述 在使用查询控件时,有时我们希望能够快捷重置控件的内容,或者重置所有控件的内容。效果如下图所示: 重置某个控件的内容:1.2 实现思路 在使用查询控件时,有时我们希望能够快捷重置控件的内容&a…

H3C 二层链路聚合

简介: 它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。 成员端口: 选中(Selected)状态:此状态下的成员端口可以参与用户数据的转发,处于此状态的成员端口…

绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代

内容一览:继 DALL-E、ChatGPT 之后,OpenAI 再发力,于近日发布 PointE,可以依据文本提示直接生成 3D 点云。 关键词:OpenAI 3D 点云 PointE OpenAI 年底冲业绩,半个多月前发布的 ChatGPT 广大网友还没…

政务行业势能厂商 |美创科技入选《嘶吼2022中国网络安全产业势能榜》

近日,网络安全垂直媒体嘶吼网络安全产业研究院正式发布《嘶吼2022中国网络安全产业势能榜》评选结果。凭借在政务数据安全领域的服务深耕以及广泛的市场认可,美创科技入选势能榜“政务篇”,获评政务行业“专精型”安全厂商。 嘶吼安全产业研究…

Apache 之执行 CGI 脚本(Python 实现)

目录前言1 查看并挑选 Python 版本2 用 Python 实现一个简单的 CGI 脚本3 查看 CGI 环境变量总结前言 本文记录了一个搭建 CGI 环境的示例。前文推荐:《Apache 2.4.54 x64 安装及配置》。 【系统环境】 Win10-64bit Apache 2.4.54 x64 Python 3.11.1 1 查看并挑选…

PyInstaller的常用打包命令

学习了pyqt后,设计了界面,并且需要打包为exe程序。 每次打包时,都要查好久资料,故此记录一下常用的命令。 PyInstaller 是一个 Python 应用程序打包工具,它可以将 Python 程序打包为单个独立可执行文件。 要使用 P…

2022星空创造营应用创新大赛圆满落幕,获奖名单出炉!

​12月22日,2022星空创造营应用创新大赛在2022手机创新周暨第十届手机设计大赛颁奖典礼上作为特别专场正式公布获奖名单。2022星空创造营应用创新大赛由联通在线、手机设计大赛天鹅奖组委会联合主办,联通在线音乐公司及工信部赛迪研究院共同承办&#xf…

Vulnhub靶机:HOLYNIX_ V1

目录介绍信息收集主机发现主机信息探测网站探测万能密码文件包含漏洞文件上传提权补充:ip问题介绍 系列:Holynix(此系列共2台) 发布日期:2010年11月27日 难度:中 运行环境:VMware Workstation …

F9P使用说明

1.介绍 ZED-F9P简易使用说明,只是简单使用无需点击具体的链接。 使用硬件:F9P 软件:ucenter 22.07 2.数据类型 ublox接收机接收到的数据 NEMA数据:https://baike.baidu.com/item/NMEA-0183/1810482UBX数据:二进制的GNSS观测值…

12月更新!EasyOps全平台产品能力再升级,新增22+功能亮点解读~

哈喽伙伴们 又到了优维EasyOps全平台产品每月功能上新时间 转眼就到了2022年的最后一个月份 12月有些事情结束了 有些事情才刚刚开始 闲言少叙 咱们来看看12月上线了哪些新功能吧 HyperInsight 超融合监控 「APM」 支持通过日志采集接口数据和指标数据 丰富APM数据接…

哪里能够找到完整的信息安全标准

写在前面 早年刚参加信息安全工作更多的学点皮毛技术,到处找安全工具,跟踪poc,拿到一个就全网扫一遍,从来没有想过,系统化的安全工作应该怎样搞?我做的工作在安全体系中处于哪个阶段? 后来有机会做企业安全建设&…

刷爆力扣之仅含 1 的子串数

刷爆力扣之仅含 1 的子串数 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&#x…

Chrome谷歌浏览器清空缓存并强制刷新页面

在项目开发过程中,用浏览器测试时很多时候会被浏览器自带的缓存搞得很头疼,那么下面会介绍几种方法实现Chrome浏览器清空缓存并强制刷新页面 1.通过快捷键方式 Windows和Linux操作系统:CtrlShiftR Mac OS: CmdShftR 这样就可以使用硬性重…

第十六章 强化学习

16.1 任务与奖赏 上图给出了强化学习的一个简单图示。强化学习任务通常用马尔可夫决策过程(MDP)来描述: 机器处于环境E中,状态空间为X,其中每个状态x∈X是机器感知到的环境的描述,如在种瓜任务上这就是当前…

java中的反射

反射 类加载的过程 当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。加载…