java 子类继承父类

为什么需要继承

我现在要有两个类一个  一个是小学生,一个是大学生

代码


小学生
package b;
public class encapsulatio{
	public String name;
	public int age;
	public double score;
	public void setscore (double score) {
		this.score=score;
		
	}
	public void testing() {
		System.out.println("小学生"+name+"正在准备考小学数学");
		
	}
	public void showinfo() {
		System.out.println("pupil name"+name+"age"+age+"score"+score);
		
	}
	
}
大学生
package b;

public class graduate {

	public String name;
	public int age;
	public double score;
	public void setscore (double score) {
		this.score=score;
		
	}
	public void testing() {
		System.out.println("University student"+name+"正在准备考小学数学");
		
	}
	public void showinfo() {
		System.out.println("pupil name"+name+"age"+age+"score"+score);
		
	}
}

你会发现,这两个类实现的方法没什么不同,

我在主类中

package b;

public class main_ {

	public static void main(String[] args) {
		encapsulatio e=new encapsulatio() ;
		e.name="jacl";
		e.setscore(10);
		e.showinfo();
		
		
	}
}

看到了有这个小学生的

那么大学生

	encapsulatio e=new encapsulatio() ;
		e.name="jacl";
		e.setscore(10);
		e.showinfo();
		graduate a=new graduate() ;
		a.name="jacl";
		a.setscore(10);
		a.showinfo();
		

这样就很麻烦了那么继承就出马了

继承的细节问题

子类能够继承所有属性和方法,但是私有属性和方法不能在子类直接访问,通过公共方法访问

但可以间接访问,私有属性和方法不能直接在子类中。要通过公有方法访问

我先创建了主类。主类中有公有和私有属性和方法

package b;

public class father_ {//father class
	//4attribute
	public int n1=100;
	protected int n2=200;
	int n3=400;
	public  father_() {//无参构造器
		System.out.println("base(....");
		
		
	}
	public void test100() {
		System.out.println("test100");
		
	}
	protected void test200() {
		System.out.println("test200");
		
	}
	void test300() {
		System.out.println("test300");
	}
	private void test400() {
		System.out.println("test400");
		
	}
}

然后我创建了子类,并在子类中继承主类

package b;

public class graduate extends father_ {
	public graduate() {
	// TODO Auto-generated constructor stub
	System.out.println("graduate");
	}
	private void sayok() {//子类方法
		//非私有的属性和方法可以直接在子类访问,但私有属性和方法不能在子类直接访问
		
		System.out.println(n1+"-------"+n2+"-------"+n3);
		test100();
		test200();
		test300();
		test400();
	}
}

在用私有方法时The method test400() from the type father_ is not visible

然后我们再创建一个调用的类,就把他命名为main类

package b;

public class main_ {

	public static void main(String[] args) {
		graduate gra=new graduate();
		gra.sayok();
	
		
	}
}

这里我们调用了graduate.发现它继承的主类中的私有属性和方法都不能访问到

然后我们用公有的在父类中添加。

	//父类提供公共方法访问
	public int getn3() {
		return n4;
		
		
	}
	public void callback400() {
		test400();
		
	}

间接调用私有变量和属性

结果

base(....

graduate

100-------200-------400

test100

test200

test300

test400

分享一个快捷键同时选多个

如下图所示,快捷键shift + alt + a 之后按钮鼠标左键往下滑则可实现多行操作的功能,退出则再shift + alt + a 一次即可

ctrl+pagup切换tab

alt +esc在多个屏幕切换焦点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【测试SQLite】测试SQLite支持的SQL语句分类

测试SQLite支持的SQL语句分类 为了全面测试SQLite支持的SQL语句,需要设计一个包含多种类型的表结构,并编写各种SQL语句来测试这些功能。目前按照以下分类进行测试: 数据定义语言(DDL)数据操作语言(DML&am…

重学java 44.多线程 Lock锁的使用

昨日之深渊,今日之浅谈 —— 24.5.25 一、Lock对象的介绍和基本使用 1.概述 Lock是一个接口 2.实现类 ReentrantLock 3.方法 lock()获取锁 unlock()释放锁 4.Lock锁的使用 package S78Lock;import java.util.concurrent.locks.Lock; import java.util.concurrent.lo…

Slash后台管理系统源码阅读笔记 实现环形图统计卡片

目前在梳理工作台相关的代码。 工作台的界面如下: 这里面的Banner的代码已经基本梳理完毕,整体代码如下: import { Col, Row } from antd; import Color from color;import Character3 from /assets/images/characters/character_3.png; i…

JVM1.8分代的理论基础和简单测试

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

一文了解安卓内存抖动

目录 目录一、什么是内存抖动?1.1 Android里的内存抖动1.2 如何直观查看这种现象1.3 内存抖动带来的风险 二、如何避免内存抖动 目录 一、什么是内存抖动? 在程序里,每创建一个对象,就会有一块内存分配给它,每分配一…

用Python Pygame做的一些好玩的小游戏

有些游戏的代码比较长就不公布了 1.简简单单 1.疯狂的鸡哥 你要准备的图片: 命名为:ji.png 代码: import pygame import random as r pygame.init() pygame.display.set_caption(aaa) pm pygame.display.set_mode((800,600))class Ls(py…

langchain实战-从0到1搭建ai聊天机器人

介绍 当前,人工智能大模型公司如雨后春笋般迅速涌现,例如 OpenAI、文心一言、通义千问等,它们提供了成熟的 API 调用服务。然而,随之而来的是不同公司的繁琐协议接入过程,这让许多开发者感到头疼不已。有没有一种统一…

MySQL索引、视图练习

素材 1.学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 2.课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 3.学生选课表:SC (Sno…

nodejs 与 npm 版本对应关系

官方地址:https://nodejs.org/en/about/previous-releases

前端百度地图添加点并跳转到百度地图进行导航

目录 一、需求 二、展示地图 三、添加点覆盖物 四、添加信息窗口(需展示地址名称) 五、唤起百度地图 六、完整代码 一、需求 前端有时候需要做地图展示,我一般用的地图是天地图和百度地图,大家可以通过官网来制作地图。 …

Mysql-根据字段名查询字段在哪些表里

SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAMElabel_name;

爬虫案例:有道翻译python逆向

pip install pip install requestspip install base64pip install pycrytodome tools 浏览器的开发者工具,重点使用断点,和调用堆栈 工具网站:https://curlconverter.com/ 简便请求发送信息 flow 根据网站信息,preview,respon…

【MATLAB源码-第213期】基于matlab的16QAM调制解调系统软硬判决对比仿真,输出误码率曲线对比图。

操作环境: MATLAB 2022a 1、算法描述 一、16QAM调制原理 在16QAM(16 Quadrature Amplitude Modulation)调制中,一个符号表示4个比特的数据。这种调制方式结合了幅度调制和相位调制,能够在相同的频谱资源下传输更多…

kotlinx.coroutines.debug.AgentPremain

大家好 我是苏麟 . 项目引入AI大模型 debug 出现报错 设置 勾选

2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理

让每个人都拥有一个属于自己的本地大模型 下载Ollama 下载地址 ​ https://ollama.com/download ​ Ollama支持MacOS、Linux、Windows 解压 下载完成后,会得到一个Ollama-darwin.zip文件,解压后,以Mac为例是一个可运行文件:O…

失业潮中如何突围?优秀PPT案例助你职场逆袭

在这个变幻莫测的时代,失业潮像一场突如其来的暴风雨,许多人在职场的大海中迷失方向。但别担心,即使风浪再大,总有勇敢的航海者能够乘风破浪,找到属于自己的那片新大陆。 今天,我们就来聊聊,在…

leedcode【209】. 长度最小的子数组——Java解法

Problem: 209. 长度最小的子数组 题目思路解题方法复杂度Code效果 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存…

pyside6下没有designer.exe、pyside6-uic.exe等

使用conda安装的pyside6(conda install pyside6),发现pyside6目录下没有designer.exe、pyside6-uic.exe等;designer.exe在Miniconda3/Library/bin下 pyside6-uic.exe、pyside6-rcc.exe在Miniconda3\Scripts下 但是 使用pip安装…

边框渐变样式

实现样式: 对应代码: div {min-height: 40vh;border: 10px solid transparent;background-image: linear-gradient(#222, #222), var(--gradient);background-origin: border-box;background-clip: padding-box, border-box;border-radius: 10px;positi…

Mysql之InnoDB索引

1.索引简介 官网介绍:MySQL :: MySQL 8.0 Reference Manual :: 10.3.1 How MySQL Uses Indexes 索引用于快速查找具有特定列值的行。如果没有索引, MySQL 必须从第一行开始,然后读取整个表以找到相关的行。表越大,花费就越多。如果表中有相关…