随笔-10  评论-11  文章-20  trackbacks-0
重载  Overloading   当方法重载的时候方法的名称相同,但是参数类型或个数不同,发生的范围在同一个类中
例如:

public class T8 {
  public static void main(String args[])
  {
   int z=add(10,20,30);
   float t=add(10.0f,20.0f,30.0f);
   
   System.out.println(t);
   System.out.println(z);
  }
  
  public static int add(int a, int b,int c)                   //方法1
  {
   int z=a+b+c;
   
   return z;
  }
  
  public static float add(float a, float b,float c)            //方法2重载方法1

  {
   float z=a+b+c;
   
   return z;
  }
}

运行结果如下:



重写 Override  方法名称相同,参数类型或者数目不同,方法的访问权限不能更严格,因为要继承,所以发生在继承关系之中,由子类进行覆写
例如:

abstract class Err                                    //抽象类
{
 public void printInfo()
 {
  System.out.println("姓名:"+this.getName());
  System.out.println("班级:"+this.getCla());
  System.out.println("原因:"+this.getCau());
 }
 public abstract String getName();               //抽象方法
 public abstract String getCla();
 public abstract String getCau();
}

class San extends Err                            //发生继承
{
 public String getName()                       //子类中复写父类中的抽象方法
 {
  return "张三";
 }
 public String getCla()                        //子类中复写父类中的抽象方法

 {
  return "计算机4班";
 }
 public String getCau()                        //子类中复写父类中的抽象方法

 {
  return "上课睡觉";
 }
}

class Si extends Err                               //发生继承
{
 public String getName()                                    //子类中复写父类中的抽象方法
  
 {
  return "李四";
 }
 public String getCla()                               //子类中复写父类中的抽象方法

 {
  return "计算机5";
 }
 public String getCau()                                //子类中复写父类中的抽象方法

 {
  return "上机期间打游戏";
 }
}

public class R2 {
 public static void main(String args[])
 {
  Err e1 = new San();
  e1.printInfo();
  System.out.println("****************");
  Err e0 = new Si();
  e0.printInfo();
 }
}
结果如下:

posted on 2010-10-19 22:54 Soap MacTavish 阅读(401) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: