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"); ...
随机推荐
- macos安装Charles
一.安装jdk 1.地址:https://www.oracle.com/cn/java/technologies/downloads/#java11,下载后双击安装 2.查看java的安装地址,在ma ...
- HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信
自研原生鸿蒙NEXT5.0 API12 ArkTS仿微信app聊天模板HarmonyOSChat. harmony-wechat原创重磅实战纯血鸿蒙OS ArkUI+ArkTs仿微信App聊天实例.包 ...
- 符合ASTM标准的雨流计数法及其不同的改进方法
随着研究的深入,人们发现采用时间序列计算载荷谱太麻烦了,处理的工作量太大,我们不需要将每个时刻点的载荷都做运算,疲劳计算只需要提供幅值.均值和循环次数,鉴于此发展出了很多不同的计数方法,雨流法是最常见 ...
- 使用sqlparse解析table_name,支持子查询, left join等
import sqlparse from sqlparse.sql import IdentifierList, Identifier from sqlparse.tokens import Keyw ...
- 秒懂Java为什么只有值传递
在Java语言中,数据类型分为基本数据类型和引用数据类型. 基本数据类型(如int.double.char等)的值直接保存在栈上.这些类型的变量在栈内存中有固定的大小,并且值是直接存储在这些变量中的, ...
- 查壳工具之Exeinfo PE
简介 Exeinfo PE是一款免费.专业的程序查壳软件,可以查看exe.dll程序的编译信息,开发语言,是否加壳,壳的种类以及入口地址等信息. Exeinfo PE下载地址:https://gith ...
- navicat之常用操作
日常开发经常使用Navicat进行数据库的管理 快捷键: 快捷键 说明 F6 打开一个命令行界面 Ctrl + q 快速开启一个查询 ctrl + r 运行当前SQL ...
- 集成Nacos
版本统一:Spring Boot 2.6.11,Spring Cloud 2021.0.4,Spring Cloud Alibaba 2021.0.4.0: Maven 仓库记得配置中央仓库,私服上有 ...
- 前端17号学习(html完结)
一.路径 1.目录文件夹和跟目录 实际工作中需要创建一个文件夹来管理他们. 目录文件夹,就是普通文件夹,里面存放页面相关素材,如html文件.图片等. 根目录,打开目录文件夹的第一层就是根目录. 2. ...
- 通过本地私有的镜像仓库harbor解决网络原因导致的jdk无法加载而造成的docker打包错误
各种网络原因,或是docker.io无法访问,或是阿里的镜像源故障,导致java打包发布的时候报错,很影响代码发布的质量. 解决思路:墙出去把jdk下载下来,代码使用本地的harbor库进行引用,一 ...