如今能给我安全感的,却只有出门时口袋里的钱包和钥匙,以及手机里显示的满格电


首先创建父类子类测试类:

//父类
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中继承方法的使用,以及使用方法的注意事项,继承方法重写的理解,白话文详解,简单易理解相关推荐

  1. java中example函数作用_mybatis mapper学习4-MyBatis的Mapper接口以及Example的实例函数及详解...

    mybatis能够自动生成sql语句,也能够添加自定义sql语句 使用mybatis generator生成XX.java,XXExample.java,XXmapper.java,XXmapper. ...

  2. java中if结构用图表示_Java语法基础之选择结构的if语句、switch语句详解

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...

  3. devexpress 中的checkboxlist怎么设置间距_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解

    本篇文章主要为大家讲解了html中的h1标签的样式解析,但是如果不用css样式来做的话,那就只能在html4.01中显示了,所以我们还是尽快学习css层叠样式表吧,好了,现在让我们来说说这篇文章吧. ...

  4. qt怎么设置标签背景图片_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解...

    本篇文章主要为大家讲解了html中的h1标签的样式解析,但是如果不用css样式来做的话,那就只能在html4.01中显示了,所以我们还是尽快学习css层叠样式表吧,好了,现在让我们来说说这篇文章吧. ...

  5. C#高级编程——C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)——图文详解加源码

    C#高级编程--C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)--图文详解加源码 前言

  6. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  7. Java中的浮点数四舍五入到小数点后2位的一些实用方法

    前言 四舍五入到2或3个小数位是我们Java程序员日常开发中肯定会遇到.幸运的是,Java API提供了几种在Java中舍入数字的方法 我们可以使用Math.round(),BigDecimal或De ...

  8. Java中var类型的用法和使用var的注意事项和使用var的优缺点

    Java中var是Java10版本新出的特性,用它来定义局部变量. 使用var 定义变量的语法: var 变量名 = 初始值: 如果代码: var a = 20: var a =8.9: 这样的代码会 ...

  9. java后端需要注意的事项_【后端开发】Java中关于null的含义以及使用中要注意的事项...

    下面小编就为大家带来一篇浅谈java中null是什么,以及使用中要注意的事项.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.null既不是对象也不是一种类型,它仅是 ...

  10. Java高并发编程详解系列-深入理解Thread构造

    上篇分享中主要是对线程的基本概念和基本操作做了一个分享,同时提出了两种常用的创建多线程的方法,当然在后期的分享中也会提及到更多的创建线程的方式,到后期的分享的时候再说. 这次主要是深入的理解一下Thr ...

最新文章

  1. MAC安装OpenXenManager管理Xenserver
  2. Spring testcontext
  3. English trip -- VC(情景课)1 D
  4. SGU247(排列组合与大数运算)
  5. mysql8 win10启动_Windows10 mysql 8.0.12 非安装版配置启动方法
  6. php类库下载下来怎么使用,PHP如何实现$this-[类库名称]-[类库方法]。
  7. python代码加密 混淆_Python程序的混淆和加密
  8. 程序员真是一门苦差事!
  9. 零点起飞学Visual C++
  10. 淘宝API 添加上传商品图片
  11. mysql date 24小时制_SpringBoor连接mysql数据库取数据库中时间格式是12小时制的时间,如何显示成24小时制...
  12. nextvlad:一个用于大规模视频分类的聚集帧级特征的有效神经网络 NeXtVLAD: An Efficient Neural Network toAggregate Frame-level Fea
  13. 原谅帽大作战游戏程序
  14. Beyond Compare4中文版免费版上线
  15. 响应式编程之Spring Webflux
  16. Java实现登录查重实例
  17. 4rx4 服务器内存2rx4_服务器内存上的2RX8 2RX4 4RX4 4RX8代表的具体意思是什么?
  18. Perl-正则表达式
  19. SocketTools.NET 11.0 Crack
  20. 252T网盘资源包括:

热门文章

  1. 【预测模型】基于matlab离散状态空间模型模拟预测控制仿真系统(单输入单输出)【含Matlab源码 1537期】
  2. 【数字信号调制】基于matlab GUI AM+FM+DSB+SSB调制解调【含Matlab源码 1212期】
  3. 深度学习行人检测简介_深度学习简介
  4. classmethod staticmethod一些领悟
  5. Html垂直居中不起作用,html – 垂直居中不起作用,因为行不会达到100%的高度
  6. java 映射servlet,java – 将映射或对象从jsp传递到servlet
  7. nvm 下载node 下载不下来_音乐下载 黄子韬爸妈可以不走吗
  8. mysql connector/c++ 存储过程的调用_MySQL Connector C++ 调用存储过程
  9. stata软件不出图_Stata软件的图形绘制—1
  10. cxf超时设置不起效_jmeter集合点设置(十三)