重写与重载的区别

1、重载:

      1)是指方法名一样,参数不同的几个方法,它们的功能相近;

      2)调用的时候是根据调用“参数的类型”来识别方法。

2、重写(也是方法的覆盖)

      1)是子类中修改父类中方法的方法;

      2)在子类型中定义,与父类型中的方法名和参数都一样的方法;

      3)在调用是,是根据“对象的类型”来调用相应的方法。

 

举个例子:

public class Demo08 {
 public static void main(String[] args) { 

       Super obj=new Sub();//这里的Super是obj的类型,而Sub是对象
        Coo t=new Coo();
        t.t(obj);//根据obj的类型Super调用重载方法
  
 }

}
class Coo{
    public void t(Super obj){//重载的方法
         System.out.print("C");
          obj.t();//调用重写的方法
      }
    public void t(Sub obj){
         System.out.print("S");
         obj.t();
      }
}
class Super{
        public void t(){
           System.out.print("A");
       }
}
class Sub extends Super{
          public void t(){
          System.out.print("D");
      }
}

首先,Super obj=new Sub();这里的Super是obj的类型,而Sub是对象,之后运行到t.t(obj);时,因为obj的类型是Super类型的,所以调用的是Coo类下的 public void t(Super obj)方法,输出C,接着执行obj.t()语句,又因为obj的对象是Sub类型的,所以执行的是class Sub extends Super下的语句,输出D。

      在这里,若对象的类型改为Super类型的,则最后输出的是CA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值