首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 满载和重写

2012-09-03 
java 重载和重写1. 函数重载是一个类中(或者子类)声明了多个同名的方法,但有不同的参数个数和参数类型。2.

java 重载和重写
1. 函数重载是一个类中(或者子类)声明了多个同名的方法,但有不同的参数个数和参数类型。

2. 函数重写是指在子类中声明与父类同名的方法,从而覆盖了父类的方法。重构解决了子类与父类的差异问题。

例子如下:

//重载(overloading method)
class A {
public d (){};
public d (q){};
public d (q,w){};
}

//重写(overiding method)
class B extends A{
public d (q,f){};
}

特别注意:
变量不会像方法那样被重写,如果A中有一个变量i=10,B中有一个变量是i=20,
那么
A a1= new B(); a1.i的结果是10
B a1=new B(); a1.i的结果是20


在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。


另外:在子类中重载父类的方法也是有效的,比如:

public class Game {public void test (String s){System.out.println(s);}}public void test (int s){System.out.println(s);}public static void main(String[] args) { BoardGame boardgame=new BoardGame();boardgame.test("a");boardgame.test(1);}输出:a1


如果子类要重写父类的方法,则一定要加上@override,加了这个注解以后BoardGame 的test()方法就只能重写父类中的方法,而不能重载了。

热点排行