Java中继承方法的使用,以及使用方法的注意事项,继承方法重写的理解,白话文详解,简单易理解
如今能给我安全感的,却只有出门时口袋里的钱包和钥匙,以及手机里显示的满格电
首先创建父类子类测试类:
//父类
public class Fu {}
//子类
public class Zi {}
//测试类
public class TestA {}
子类继承父类:
//子类
public class Zi extends Fu{}
随后我们在父类中添加非静态方法aa:
public class Fu {public void aa(){System.out.println("我是父类中的aa方法");}
}
之后我们通过在测试类new子类对象,对父类的aa方法进行调用
//测试类
public class TestA {public static void main(String[] args) {Zi zi = new Zi();zi.aa();}
}
这里的话说明一下,我刚接触这个的时候,就有一个疑问,静态方法不是不能直接调用非静态方法吗?这里的直接调用,是类名.方法名调用,用对象new的话,不属于直接调用;
那我们整体输出一下:
通过上面的示例我们发现,我们调取父类中的方法,与属性调用方法是一致,那么我们如何调用子类中的方法呢?我们在子类中创建非静态方法,bb
//子类
public class Zi extends Fu{public void bb(){System.out.println("我是子类中的方法bb");}
}
我们测试类调用运行:
其实这种普通方法的调用,跟调用属性是一样的,那普通方法是这样的,那静态方法是怎么调取的?
我们在父类种添加静态方法aaa
在子类方法中添加静态方法bbb
//父类
public class Fu {public void aa(){System.out.println("我是父类中的aa方法");}//静态方法public static void aaa(){System.out.println("我是父类中的静态aaa方法");}}
//子类
public class Zi extends Fu{public void bb(){System.out.println("我是子类中的方法bb");}//静态方法public static void bbb(){System.out.println("我是子类中的静态方法bbb");}
}
随后我们在测试类进行调用两个静态方法
但是在测试类调用静态方法的同时,我们需要注意,系统不会提供相应的快捷输入方式,但我们直接手写全名即可,不会出现报错
现在我们运行测试类,看看会输出什么?
这里我们要注意一点,我们这个是创建好的对象,然后才调用的,但其实我们的静态方法和普通方法是有运行的优先级的,这个推荐一篇文章,他写的不错:
静态方法的优先级
其实关于静态优先级也很好理解,我们的Java虚拟机是有栈堆内存的,创建变量一共分为四个步骤,其中牵扯的东西比较多,如果你不想一直做码农的话,我建议就学习一下,了解这里面的内存分布的情况;
我们属性内有重名的情况。那么我们的办法肯定也有重名的情况,这种子类与父类的方法的重名,我们叫做方法的重写,意思是什么,就是父类的方法已经无法满足我们的需求,但是我还有用之前父类中其他方法的功能,但我还需要添加新功能,这怎么办呢,用重写
我i们在父类子类中添加cc方法:
public void cc(){System.out.println("我是父类中的cc方法");}
public class Zi extends Fu{public void bb(){System.out.println("我是子类中的方法bb");}//静态方法public static void bbb(){System.out.println("我是子类中的静态方法bbb");}//重写public void cc(){System.out.println("我是子类中的cc重写方法");}
}
我们可以在子类重写方法上面写@Override,如果没有报错,就代表这个方法被重写了
运行结果:
这就代表我们父类的cc方法被子类的cc方法重写了
那我们再说,其实重写的话也是有很多要求的:
- 方法名必须相同
- 参数列表必须相同
- 子类返回值类型小于等于父类中的返回值类型
- 子类权限修饰符的权限必须要大于等于父类权限修饰符
- 可以使用@Override,检测方法是否重写
- 静态方法不能被重写
来一张图片,净化心灵
Java中继承方法的使用,以及使用方法的注意事项,继承方法重写的理解,白话文详解,简单易理解相关推荐
- java中example函数作用_mybatis mapper学习4-MyBatis的Mapper接口以及Example的实例函数及详解...
mybatis能够自动生成sql语句,也能够添加自定义sql语句 使用mybatis generator生成XX.java,XXExample.java,XXmapper.java,XXmapper. ...
- java中if结构用图表示_Java语法基础之选择结构的if语句、switch语句详解
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...
- devexpress 中的checkboxlist怎么设置间距_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解
本篇文章主要为大家讲解了html中的h1标签的样式解析,但是如果不用css样式来做的话,那就只能在html4.01中显示了,所以我们还是尽快学习css层叠样式表吧,好了,现在让我们来说说这篇文章吧. ...
- qt怎么设置标签背景图片_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解...
本篇文章主要为大家讲解了html中的h1标签的样式解析,但是如果不用css样式来做的话,那就只能在html4.01中显示了,所以我们还是尽快学习css层叠样式表吧,好了,现在让我们来说说这篇文章吧. ...
- C#高级编程——C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)——图文详解加源码
C#高级编程--C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)--图文详解加源码 前言
- java中flush函数作用_Java语言中flush()函数作用及使用方法详解
最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...
- Java中的浮点数四舍五入到小数点后2位的一些实用方法
前言 四舍五入到2或3个小数位是我们Java程序员日常开发中肯定会遇到.幸运的是,Java API提供了几种在Java中舍入数字的方法 我们可以使用Math.round(),BigDecimal或De ...
- Java中var类型的用法和使用var的注意事项和使用var的优缺点
Java中var是Java10版本新出的特性,用它来定义局部变量. 使用var 定义变量的语法: var 变量名 = 初始值: 如果代码: var a = 20: var a =8.9: 这样的代码会 ...
- java后端需要注意的事项_【后端开发】Java中关于null的含义以及使用中要注意的事项...
下面小编就为大家带来一篇浅谈java中null是什么,以及使用中要注意的事项.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.null既不是对象也不是一种类型,它仅是 ...
- Java高并发编程详解系列-深入理解Thread构造
上篇分享中主要是对线程的基本概念和基本操作做了一个分享,同时提出了两种常用的创建多线程的方法,当然在后期的分享中也会提及到更多的创建线程的方式,到后期的分享的时候再说. 这次主要是深入的理解一下Thr ...
最新文章
- MAC安装OpenXenManager管理Xenserver
- Spring testcontext
- English trip -- VC(情景课)1 D
- SGU247(排列组合与大数运算)
- mysql8 win10启动_Windows10 mysql 8.0.12 非安装版配置启动方法
- php类库下载下来怎么使用,PHP如何实现$this-[类库名称]-[类库方法]。
- python代码加密 混淆_Python程序的混淆和加密
- 程序员真是一门苦差事!
- 零点起飞学Visual C++
- 淘宝API 添加上传商品图片
- mysql date 24小时制_SpringBoor连接mysql数据库取数据库中时间格式是12小时制的时间,如何显示成24小时制...
- nextvlad:一个用于大规模视频分类的聚集帧级特征的有效神经网络 NeXtVLAD: An Efficient Neural Network toAggregate Frame-level Fea
- 原谅帽大作战游戏程序
- Beyond Compare4中文版免费版上线
- 响应式编程之Spring Webflux
- Java实现登录查重实例
- 4rx4 服务器内存2rx4_服务器内存上的2RX8 2RX4 4RX4 4RX8代表的具体意思是什么?
- Perl-正则表达式
- SocketTools.NET 11.0 Crack
- 252T网盘资源包括:
热门文章
- 【预测模型】基于matlab离散状态空间模型模拟预测控制仿真系统(单输入单输出)【含Matlab源码 1537期】
- 【数字信号调制】基于matlab GUI AM+FM+DSB+SSB调制解调【含Matlab源码 1212期】
- 深度学习行人检测简介_深度学习简介
- classmethod staticmethod一些领悟
- Html垂直居中不起作用,html – 垂直居中不起作用,因为行不会达到100%的高度
- java 映射servlet,java – 将映射或对象从jsp传递到servlet
- nvm 下载node 下载不下来_音乐下载 黄子韬爸妈可以不走吗
- mysql connector/c++ 存储过程的调用_MySQL Connector C++ 调用存储过程
- stata软件不出图_Stata软件的图形绘制—1
- cxf超时设置不起效_jmeter集合点设置(十三)