pyqb

导航

 

 

重写(Override)

重写是子类对父类的允许访问的方法的进行重新编写, 但是返回值和形参都不能改变。

实例

 1 class Animal{
 2     public void run(){
 3         System.out.println("Animal Run");
 4     }
 5 }
 6 
 7 class Dog extends Animal{
 8     public void run(){
 9         System.out.println("Dog Run");
10     }
11 }
12 
13 public class Test{
14     public static void main(String[] args){
15         Animal animal = new Animal();//创建Animal对象
16         Dog dog = new Dog();         //创建Dog对象
17 
18         animal.run();   //执行Animal类的方法
19         dog.run();      //执行Dog类的方法
20     }
21 }

运行输出:

Animal Run
Dog Run

 

重载(overloading)

重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

实例

 1 public class Test{
 2     //重载方法1 test1
 3     public int test(){
 4         System.out.println("test1");
 5         return 1;
 6     }
 7     //重载方法2 test2
 8     public void test(int a){
 9         System.out.println("test2");
10     }
11 
12     //以下两个参数类型顺序不同
13     //重载方法3 test3
14     public String test(String s,int a){
15         System.out.println(s);
16         return "return test3";
17     }
18 
19     //重载方法4 test4
20     public String test(int a,String s){
21         System.out.println(s);
22         return "return test4";
23     }
24 
25     public static void main(String[] args){
26         Test t = new Test();
27         System.out.println("-----------------------");
28         System.out.println(t.test());
29         System.out.println("-----------------------");
30         t.test(1);
31         System.out.println("-----------------------");
32         //
33         System.out.println(t.test(1,"test3"));
34         System.out.println("-----------------------");
35         System.out.println(t.test("test4",1));
36     }
37 }

运行输出:

-----------------------
test1
1
-----------------------
test2
-----------------------
test3
return test4
-----------------------
test4
return test3

 

@override

判断是否是方法覆盖,在方法上添加@override标签后,如果这个方法是覆盖了父类的覆盖方法,则编译通过,如果不是则报错

由于fly1()方法不是覆盖方法,所以编译时报错

posted on 2017-10-27 15:02  没有音乐就退化耳朵  阅读(173)  评论(0编辑  收藏  举报