java子类父类有相同的方法优先调用子类-重写-递归
子类和父类有相同的方法,优先调用子类。如果子类没有,父类。
package studyDemo9yue;
public class study01 {
public static void main(String[] args) {
Son s1 = new Son();
s1.test();
}
}
class Father{
void test(){
System.out.println("我是父类的test");
}
}
class Son extends Father{
void test(){
System.out.println("我是子类的test");
}
}
输出的是:我是子类的test
因为子类有,所以优先调用子类
子类父类有相同的方法,子类调用父类方法使用super
package studyDemo9yue;
public class study01 {
public static void main(String[] args) {
Son s1 = new Son();
s1.test();
}
}
class Father{
void test(){
System.out.println("我是父类的test");
}
}
class Son extends Father{
void test(){
// 子类调用父类方法使用super
super.test();
System.out.println("我是子类的test");
}
}
输出:
我是父类的test
我是子类的test
重写
父类对象的方法其实主要体现在通用性,无法在特殊的场合下使用;
如果子类对象需要在特殊的场景下使用,那么就需要重写方法的逻辑,这个操作在java中我们称之为方法的重写。
方法重写的要求
方法的重写要求,子类的方法和父类的方法名称相同,参数列表相同。个数相同。参数类型相同
递归:一个方法调用自身的一种编程方式 [奇数求和]
package studyDemo9yue;
public class study01 {
public static void main(String[] args) {
System.out.println(sum(10));
}
public static int sum (int num) {
int isJiSHu = num % 2 ==0 ? num-1 : num;
if(isJiSHu == 1){
return isJiSHu;
} else {
return isJiSHu + sum (isJiSHu - 2 );
}
}
}
递归--[阶乘]
public class study01 {
public static void main(String[] args) {
System.out.println(jieCheng(5));
}
public static int jieCheng (int num) {
if(num ==1 ){
return num;
}else {
return num * jieCheng(num -1);
}
}
}
递归应该注意的点:
1.应该有跳出的逻辑
java子类父类有相同的方法优先调用子类-重写-递归的更多相关文章
- java之父类中的构造器是否能被子类继承?
子类默认继承父类的属性和方法,但不会继承父类的构造器,而是在子类被实例化时会默认调用父类的空构造器.子类在创建的时候会调用自己的空构造器,并在空构造器会隐式调用super(),即父类的空构造器.如果父 ...
- 子类可以有跟父类中同名的方法,但是会重写父类中的方法,甚至是root class中的方法
/* 子类可以重写父类中的方法,甚至是root class中的方法,比如NSObeject 的new方法,但是后提示警告如下 Method is expected to return an insta ...
- 子类的实例给父类的引用 在编译器时候 jvm认为他是父类的实例 只会去寻找父类里面的方法 如果调用子类里面的属性或者方法时候 jvm会认为该引用并没有 所以会报错
- java如何写自己的native方法实现调用本地的c++库?
等待编辑 1:首先可以找一本jni java native interface相关的书籍来看.
- java 多态 ---父类调用子类方法
package test1;//多态的体现import javax.print.attribute.standard.RequestingUserName;import java.util.Scann ...
- java的父类声明,子类实例化(强制类型转换导致异常ClassCastException)
一.使用原因 父类声明,子类实例化,既可以使用子类强大的功能,又可以抽取父类的共性. 二.使用要点 1.父类类型的引用可以调用父类中定义的所有属性和方法: 2.父类中方法只有在是父类中定义而在子类中没 ...
- PHP 父类方法如何访问子类属性
设计知识点 类与对象->后期静态绑定 出现的问题 A 类为父类 里面有一个方法为调用当前类的 $name 属性 当 B 类继承了 A类时 但是输出仍然是 A (父类) 的 属性? <?ph ...
- java中构造代码块、方法调用顺序问题
1. 继承的概念 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...
- java-- 的子类/父类构造方法 转
前提:父类和子类同时都有有参的构造函数和无参构造函数. Java中的子类初始化时初值为空.调用顺序为先调用父类无参构造函数,然后调用子类无参构造函数. java中的子类初始化时初值不为空.调用顺序为先 ...
- 隐藏父类方法的new和重写父类虚方法virtual的区别
一.代码 public class Parent { public void Method_A() { Console.WriteLine("Parent Method_A"); ...
随机推荐
- 19、解析2_1(链、chunk、锁)
解析 shared pool 图解: library cache里面,暂时可以认为存储着: 1.SQL以及对应的执行计划(所占空间比较小): 2.存储过程.函数.触发器.包,它们编译后的对象(所占空间 ...
- C# 开发的环境监测上位机应用
前言 在工业和科研领域,环境监测系统的重要性日益凸显.上位机软件作为环境监测系统的关键组成部分,负责数据采集.处理和显示,对提高监测效率和准确性起着至关重要的作用. 本文将向大家介绍一款用 C# 开发 ...
- app&小程序&web安全—sign签名绕过
零.前言 在web界面登陆时,小程序和app传输数据时经常会碰到签名,会对请求的参数进行签名,如果自己修改了数据包就会校验失败非常麻烦. 本文编写的契机就是因为碰到了一个JeecgBoot的小程序, ...
- SharpZipLib解压.tar.gz
上一篇文章我们说了如何用SharpZipLib来压缩.tar.gz,这篇文章我们来看看如何解压. 直接上代码: using ICSharpCode.SharpZipLib.GZip; using IC ...
- Win10虚拟机安装Docker解决Docker Engine Stopped问题记录
跟着网上的帖子开启WSL2安装DockerDesktop, 但是无法启动Docker,一直[Docker Engine stopped] 继续跟着网上的帖子解决问题,检查电脑各种配置都搞一通后还是无法 ...
- cockpit-325以及新版本安装和cockpit-files安装
查看版本cockpit可安装版本,发现最新的只有310版本 sudo yum list cockpit --showduplicates Last metadata expiration check: ...
- 零基础学习人工智能—Python—Pytorch学习(十二)
前言 本文介绍使用神经网络进行实战. 使用的代码是<零基础学习人工智能-Python-Pytorch学习(九)>里的代码. 代码实现 mudule定义 首先我们自定义一个module,创建 ...
- 【软件配置】使用 brew 安装特定版本软件
目录 使用 brew 安装特定版本软件 背景 方法一:直接安装 方法二:利用历史的 rb 文件安装 参考资料 使用 brew 安装特定版本软件 背景 brew 是 Mac 下非常好用的包管理工具,可以 ...
- 配置 Forwarded Headers Middleware
来自微软的说明:Configure ASP.NET Core to work with proxy servers and load balancers | Microsoft Learn. 通过该中 ...
- 使用 OpenXML 创建第一个 Word 文档
using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; public class Op ...