子类和父类有相同的方法,优先调用子类。如果子类没有,父类。
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