A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© RockLee 中级黑马   /  2015-7-1 10:05  /  792 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是方法的重载(Overload)?
其概念是:概念:
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。
存在的原因:
屏蔽了一个对象的同一类方法由于参数不同所造成的差异。
特点:
与返回值类型无关,只看参数列表。

以下是方法重载的示例:
public void a(int a){}
public int a(){}
public void a(int a,String s){}

我的总结是:方法名相同,但是方法的签名不一样。且被重载的方法还可以起作用。

eg:
    class Chongzai
    {
        public static void main(String[] args)
        {
            int ret = name(3,4,5);
            System.out.println(ret);
        }
        public static int name(int a, int b)
        {
            int c = a+b;
            return c;
        }
        public static int name(int a, int b, int m)//这就叫做方法的重载,只要参数列表不一样。好处:用户使用时限制很小;
        {
            int c = a+b+m;
            return c;
        }
    }
覆盖的含义:
方法覆写产生原因:
当父类中某个方法不适合于子类时,子类出现父类一模一样的方法.
判断必杀技:子类方法前加上@Override能编译通过,表明是方法的覆写。
调用被覆盖的父类方法:使用super.方法名(实参);
方法覆写时应遵循的原则(一同两小一大):
(一同):方法签名必须相同;
(两小):
子类方法的返回值类型比父类方法的返回值类型更小或相等
子类方法声明抛出的异常应比父类方法申明抛出的异常更小或相等;
(一大):子类方法的访问权限应比父类方法更大或相等;

子类需要覆写父类方法。
当父类的某个方法不适合于子类本身的特征行为时就当覆写父类中应当改变的方法。

我的总结是:覆盖的方法签名是一样的,且被覆盖的方法一般不起作用。

eg
package test;

    class Dog{
        void eat(){
            System.out.println("一般的狗吃一般的狗粮!");
        }
    }

    class HashDog extends Dog{
        void eat(){
            System.out.println("哈士奇吃哈士奇的狗粮!");
        }
    }

    class ZangAoDog extends Dog{
        void eat(){
            System.out.println("藏獒吃藏獒的狗粮!");
        }
    }
public static void main (String [ ]  args){
                new ZangAoDog.eat();
}

9 个回复

倒序浏览
写的好:lol
回复 使用道具 举报
总结得很到位
回复 使用道具 举报
谢谢楼主分享~
回复 使用道具 举报
学习学习!!
回复 使用道具 举报
总结的很好,学到了
回复 使用道具 举报
不错,加油~
回复 使用道具 举报
总结得不错,复习一下
回复 使用道具 举报
赞一个  谢谢
回复 使用道具 举报
感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马