Java类的继承与方法调用的一个小问题

 1 public class Father {
 2 
 3     protected void server(int i){
 4         switch (i){
 5             case 1:
 6                 methodone();
 7                 break;
 8             case 2:
 9                 methodtwo();
10                 break;
11             case 3:
12                 methodthree();
13                 break;
14             default:
15                 System.out.println("error");
16         }
17 
18 
19 
20     }
21 
22     protected void methodthree() {
23         System.out.println("这是父类的方法三");
24     }
25 
26     protected void methodtwo() {
27         System.out.println("这是父类的方法二");
28     }
29 
30     protected void methodone() {
31         System.out.println("这是父类的方法一");
32     }
33 }
 1 public class Child extends Father {
 2 
 3     @Override
 4     protected void methodthree() {
 5         System.out.println("这是子类的方法三");
 6     }
 7 
 8     @Override
 9     protected void methodtwo() {
10         System.out.println("这是子类的方法二");
11     }
12 
13     @Override
14     protected void methodone() {
15         System.out.println("这是子类的方法一");
16     }
17 
18     @Override
19     protected void server(int i) {
20         super.server(i);
21     }
22 }
1 public class Test_main {
2     public static void main(String[] args){
3         Father fa=new Father();
4         Father ch=new Child();
5         fa.server(1);
6         ch.server(2);
7 
8     }
9 }

  在学习servlet的过程中突然对类方法的调用关系犯了糊涂,所谓基础不牢,地动山摇,一个小问题足以搞得我模模糊糊。在类的继承中,子类继承父类的某个方法,若这个方法中含有对父类的另一个方法(如method1,method2,method3)的调用,当子类不重载此方法(如method1,method2,method3)时,编译器会自动调用父类的相应的方法;当子类重载此方法(如method1,method2,method3)时,编译器会自动调用子类重载的方法。

  换句话说,子类继承父类方法时只是继承了相应的代码,父类调用子类的实例时会接着调用子类重载的方法,方法没有被子类重载时才会调用父类本来的方法。

转载于:https://www.cnblogs.com/Yin-BoKeYuan/p/10329957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值