首页 > 其他分享 >子类父类有相同的方法优先调用子类-重写-递归

子类父类有相同的方法优先调用子类-重写-递归

时间:2023-12-14 10:03:30浏览次数:28  
标签:子类 void num test 父类 重写 public

子类和父类有相同的方法,优先调用子类。如果子类没有,父类。

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.应该有跳出的逻辑

标签:子类,void,num,test,父类,重写,public
From: https://www.cnblogs.com/ishoulgodo/p/17900522.html

相关文章

  • 重载、继承、多态、重写
    重载,是同一个类里,方法名相同,参数不同。继承,是子类继承父类的特征和行为,可以称之为模板法。多态,对于某个类型的方法调用,其真正执行的方法取决于运行时期实际对象实际类型的方法:1、编译时多态又称静态多态,重载是编译时的多态,因为根据调用传参的类型、数量便可决定调用的是哪个重......
  • java 策略模式解决if-else ,函数式接口解决编写多个子类的问题
    /***@author:szc*@date:2023/9/222:45*@version:1.0*@description:从map中获取函数式接口,解决if-else多个子类问题*/@ServicepublicclassMapToInterface{@AutowiredprivateTypeResulttypeResult;privatestaticMap<String,Functio......
  • 原子类
    不可分割⼀个操作是不可中断的,即便是多线程的情况下也可以保证java.util.concurrent.atomic原⼦类的作⽤和锁类似,是为了保证并发情况下的线程安全。不过原⼦类相对于锁有⼀点的优势  粒度更细:原⼦变量可以把竞争范围缩⼩到变量级别,这是我们可以获得的最细的粒度的情况了,通......
  • 极语言3-2 类型结构和子类对象
    类型结构和子类对象申请类型(自定义结构体,简称类)时,可在后面加小括号设定初始值,此值在编译程序时预置,无需通过代码赋值。类只能是全局变量。例如:文件框类文件框(长度=76,路长=64,名长=64);//要注意预置初始值时,整数只能用数字,文本只能用字符串。托盘类托盘(长度=488,标识=7,回调=$3......
  • E8重写已有JS事件
    window.onload=function(){overwriteSubmit(function(){//验证成功返回truealert("12312312");returntrue;//验证失败返回false});};/***重写保存事件。*/varoverwriteSubmit=function(onSubmit){vardoSave_nNewOld=doSave_nNew;d......
  • 八股文-Java方法的重载与重写
    在Java中,重载和重写是两个关键的面向对象编程概念。重载通过方法的参数列表不同来区分同名方法,提供了更灵活的方法调用方式。而重写通过子类重新定义父类中已经存在的方法,实现了多态性的体现,让代码更具可扩展性和维护性。重载(Overloading)重载是指在同一个类中可以定义多个方法......
  • 浅谈为什么重写equals方法,就要必须重写hashcode方法
    在hashmap中是要保证key的唯一,如果新的key放入map中,发现和已有的key相同,那么就要覆盖。那么这个“唯一”是怎么确定的?或者说怎么认为两个key是相同的?那么这里的相同是指内容相同,比如newString("aaa"),newString("aaa"),new了两个字符串,是两个对象,但是内容是相同的,我们认为他们......
  • 重写
    重写:需要有继承关系,子类重写父类方法方法名必须相同参数列表必须相同修饰符:范围可以扩大,但不可以缩小:public>protected>default>private抛出异常:范围可以被缩小,但不能扩大:ClassNotFoundException<Exception子类的方法必须和父类一致;方法体不同为什么需要重写父类的功能子类不一定......
  • 什么时候会重写equals和hashcode方法
    在Java中,通常情况下,当你使用自定义类的实例作为集合的元素、键(key)或者在需要进行对象比较的场景,你可能会需要重写equals()和hashCode()方法。这两个方法在Object类中定义,但默认的实现是基于对象的内存地址,而不是基于对象的内容。通过重写这两个方法,你可以自定义对象相等性的......
  • PyTorch团队重写「分割一切」模型,比原始实现快8倍
    前言 我们该如何优化Meta的「分割一切」模型,PyTorch团队撰写的这篇博客由浅入深的帮你解答。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署......