知识大全 Java中overload和override的区别

Posted 类型

篇首语:勇士搏出惊涛骇流而不沉沦,懦夫在风平浪静也会溺水。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中overload和override的区别相关的知识,希望对你有一定的参考价值。

Java中overload和override的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   方法重载(overload) 概念 简单的说:方法重载就是类的同一种功能的多种实现方式 到底采用哪种方式 取决于调用者给出的参数 注意事项 ( ) 方法名相同 ( ) 方法的参数类型 个数 顺序不至少有一项不同 ( ) 方法返回类型可以不同 ( ) 方法的修饰符可以不同 如果只是返回类型不一样 不能够构成重载 如果只是控制访问修饰符号不一样 也是不能构成重载的 Overloaded的方法是可以改变返回值的类型 方法覆蓋(override) 概念 简单的说 方法覆蓋就是子类有一个方法 和父类的某个方法的名称 返回类型 参数一样 那么我们就说子类的这个方法覆蓋了父类的那个方法 注意事项 方法覆蓋有很多条件 总的讲有两点一定要注意 ( ) 子类的方法的返回类型 参数 方法名称 要和父类方法的返回类型 参数 方法名称完全一样 否则编译出错 ( ) 子类方法不能缩小父类方法的访问权限(反过来是可以的)

  例

  Overrride实例

  class A

  public int getVal()

  return( );

  

  

  class B extends A

  public int getVal()

  return( );

  

  

  public class override

  public static void main(String[] args)

  B b = new B();

  A a= (A)b;//把 b 强 制转换成A的类型

  int x=a getVal();

  System out println(x);

  

  

  Overload实例

  package guonan;

  //Demostrate method voerloading

  class OverloadDemo

  void test()

  System out println("NO parameters");

  

  void test(int a)

  System out println("a:"+a);

  //end of Overload test for one integer parameter

  void test(int a int b)

  System out println("a and b:"+a+" "+b);

  

  double test(double a)

  System out println("double a:"+a);

  return a*a;

  

  

  class Overload

  public static void main(String[] args)

  OverloadDemo ob = new OverloadDemo();

  double result;

  ob test();

  ob test( );

  ob test( );

  result = ob test( );

  System out println("Result of ob test( ):"+result);

  

cha138/Article/program/Java/JSP/201311/20248

相关参考