java 重载和覆盖

重载overload 和 覆盖override 是多态的两种表现形式。

重载overload,发生在同一类中,相当于不同的方法,只是因为功能类似所以起了相同的名字,必须包含不同的参数可以使用不同的返回值类型。如代码:

 1 public class OverloadTest {
 2     
 3     public void loadTest(){
 4         System.out.println("loadTest第一个");
 5     }
 6     
 7     public void loadTest(String p_string){
 8         System.out.println("loadTest第二个");
 9     }
10     
11     public int loadTest(int p_time){
12         System.out.println("loadTest第三个");
13         return p_time + 100;
14     }
15     
16     public String loadTest(int p_time, String p_str){
17         System.out.println("loadTest第四个");
18         return p_str;
19     }
20 
21 }

覆盖override,发生在子类中

先要创建一个父类 OverrideTest

1 public class OverrideTest {
2     
3     public void test1(){
4         System.out.println("基类的方法");
5     }
6 
7 }

再创建一个子类去继承父类,可以对父类中的方法进行覆盖,顺便把main函数也写一起了。

 1 public class OverrideExtends extends OverrideTest {
 2     
 3     @Override
 4     public void test1() {
 5         // TODO Auto-generated method stub
 6 //        super.test1();
 7         System.out.println("子类继承之后覆盖后的方法");
 8     }
 9     
10     public static void main(String[] args){
11         
12         OverrideTest ot = new OverrideExtends();
13         ot.test1();
14         
15     }
16 
17 }

这样的话,运行了之后,结果为“子类继承之后覆盖后的方法”,即子类中通过覆盖的方式将父类中的Test1方法进行了重写,使用的时候,就直接执行了子类中的方法。

注意:

1. 重写的时候,方法名称必须相同。

2. 重写的时候,参数必须相同。

3. 重写的时候,返回值必须相同。(或者都没有)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。