zoukankan      html  css  js  c++  java
  • 方法重载和重写的区别

    方法重写(overriding):

      1、也叫子类的方法覆盖父类的方法,要求返回值、方法名和参数都相同。

      2、子类抛出的异常不能超过父类相应方法抛出的异常。(子类异常不能超出父类异常)

      3、子类方法的的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)

    方法重载(overloading):重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法

    /**
    	方法重写(Overriding Method
     */
    class OverridingMethod 
    {
    	public static void main(String[] args) 
    	{
    		HomeDog hd = new HomeDog("阿黄");
    		hd.desc();
    	}
    }
    
    
    //基类
    class Dog
    {
    	protected String name;
    
    	public Dog(String name){
    		this.name = name;
    	}
    
    	protected void desc(){
    		System.out.println("I'm a dog");
    	}
    }
    
    
    //子类
    class HomeDog extends Dog
    {
    	public HomeDog(String name){
    		super(name);
    	}
    
    	//重写父类的方法
    	public void desc(){
    		System.out.println("这是一只狗,它的名字是"+this.name);
    	}
    }
    

      输出结果为:这是一只狗,它的名字是阿黄

      可见,调用的是子类中的desc()方法,而不是父类的desc,这就是方法的重写

  • 相关阅读:
    codevs1028 花店橱窗布置
    bzoj1497 [NOI2006]最大获利 (最大闭合权图)
    扩展欧几里得算法总结
    codevs1033 蚯蚓的游戏问题
    bzoj1001狼抓兔子
    CSS3中的选择器
    LESS快速入门
    怎样让老浏览器兼容html5新标签
    http与https差异
    css3中的radius
  • 原文地址:https://www.cnblogs.com/qthomas/p/4005488.html
Copyright © 2011-2022 走看看