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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© visen 中级黑马   /  2015-8-15 01:10  /  289 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、函数重载:
     是指在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
注:
     与返回值类型无关,只看方法名和参数列表
     在调用时,虚拟机通过参数列表的不同来区分同名方法

class ChongZhai //重载案例
{
        public static void main(String[] args)
        {
               //通过不同的参数调用sum方法
                int sum1=sum(10,11);//两个参数。整型
                int sum4=sum(1,2,3);//三个参数
                float sum2=sum(1.0F,43.0F);//两个参数 float
                double sum3=sum(234.1,22.1);//两个参数double型
               
                System.out.println(sum1);
                System.out.println(sum2);
                System.out.println(sum3);
                System.out.println(sum4);

        }
       //sum方法重载
        public static int sum(int a,int b)
        {
                return a+b;
        }
        public static int sum(int a,int b,int c)
        {
                return a+b+c;
        }
        public static float sum(float a,float b)
        {
                return a+b;
        }
        public static double sum(double a,double b)
        {
                return a+b;
        }
}
二、方法重写
子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
使用特点:
    如果方法名不同,就调用对应的方法
    如果方法名相同,最终使用的是子类自己的
class AnimalTest
{
        public static void main(String[] args)
        {
                //创建猫类对象
                Cat c=new Cat();
                c.name="小毛球";
                c.age=3;
                c.leg=4;
                System.out.println("我家的猫咪"+c.getName()+"今年"+c.getAge()+"岁了"+"有"+c.getLeg()+"条腿");
                c.eat();//调用猫类自己的方法
                c.maiMeng();
                System.out.println("----------------------");
                //创建狗类对象
                Dog d=new Dog();
                d.name="大黄";
                d.age=4;
                d.leg=4;
                System.out.println(d.getName()+"今年"+d.getAge()+"岁了"+"有"+d.getLeg()+"条腿");
                d.fanEr();
                d.eat();//调用的是狗类自己的方法       
        }
}

class  Animal
{
        String name;
        int age;
        int leg;
        Animal(){}
        Animal(String name,int age,int leg)
        {
                this.name=name;
                this.age=age;
                this.leg=leg;
        }

        //成员方法get/set
         public void setName(String name)
         {
                 this.name=name;
         }
         public String getName()
         {
                return name;
         }
         public void setAge(int age)
         {
                this.age=age;
         }
         public int getAge()
         {
                return age;
         }
         public void setLeg(int leg)
         {
                this.leg=leg;
         }
         public int getLeg()
         {
                return leg;
         }

     //特有方法
          public void eat()
          {
                  System.out.println("喜欢吃美味的东西!");
          }
          public void sleep()
          {
                  System.out.println("喜欢睡觉!");
          }
}

class  Cat extends Animal{
       
        Cat(){}
        public void maiMeng()
        {
                System.out.println("喵星人会卖萌!");
        }
         public void eat()
          {
                  System.out.println("猫喜欢吃鱼!");
          }

}

class Dog extends Animal{
        Dog(){}
         public void fanEr()
         {
                System.out.println("狗靠犯二生活!");
         }
         public void eat()
          {
                  System.out.println("狗喜欢吃骨头!");
          }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马