Java:方法的重写

2021/4/17 20:55:28

本文主要是介绍Java:方法的重写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

重写:需要有继承关系,子类重写父类的方法!子类的方法和父类必须要一致,方法体不同!

1、 非静态的方法才有重写

2、 方法的重写,父类和子类不能使用修饰符private

3、 方法名必须相同

4、 参数列表必须相同

5、 修饰符:范围可以扩大但不能缩小  

public>potected>default>private

6、 抛出的异常:范围可以缩小,但不能扩大    

ClassNotFoundException--->Exception(大的)

 

为什么需要重写:

父类的功能,子类不一定需要,或者不一定满足!

 

 1 package com.jiemyx.oop.demo07;
 2 
 3 public class A {
 4     public static void test(){
 5         System.out.println("A类的test()静态方法");
 6     }
 7 
 8     //方法的重写,父类和子类不能使用private
 9     public void test1(){
10         System.out.println("A类的test()非静态方法");
11     }
12 }

 

 1 package com.jiemyx.oop.demo07;
 2 
 3 //重写都是方法的重写,和属性无关
 4 public class B extends A{
 5     public static void test(){
 6         System.out.println("B类的test()静态方法");
 7     }
 8 
 9     //Override  重写
10     @Override   //注解:有功能的注释!
11     public void test1() {
12         System.out.println("B类的test()非静态方法");
13     }
14 }

 

 1 package com.jiemyx.oop.demo07;
 2 
 3 import com.jiemyx.oop.demo07.A;
 4 
 5 public class Application {
 6     public static void main(String[] args) {
 7 
 8         //静态的方法和非静态的方法区别很大!
 9         //非静态的方法才有重写
10 
11         //在静态方法test()中,方法的调用只和左边定义的数据类型有关
12         B b = new B();
13         b.test();
14 
15         //父类的引用指向子类
16         A a = new B();
17         a.test();
18 
19 
20         //非静态方法test1()
21         B b1 = new B();
22         b.test1();
23 
24         //父类的引用指向子类
25         A a1 = new B(); //子类重写了父类的方法
26         a.test1();
27     }
28 }

运行结果:

B类的test()静态方法

A类的test()静态方法

B类的test()非静态方法

B类的test()非静态方法

 

 

在IDEA软件中,在子类需要重写的地方快捷键:alt+insert--->Override

 

 

 

 

 

 



这篇关于Java:方法的重写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程