摸鱼少学习多

day17- 重写

重写

方法的重写 和属性无关

在父类和子类中,可以重写方法

分为静态重写和非静态重写

静态重写

方法的调用和左边定义的数据类型有关

public static 为静态重写

 
复制代码
 1 //父类B
 2  public class B {
 3      public static void test(){
 4          System.out.println("B>>test");
 5  6      }
 7  }
 8  //子类A
 9  public class A extends B{
10      //Override 重写
11      //@Override// 注解:有功能的注释
12      public static void test() {
13          System.out.println("A>>test");
14      }
15  }
16  //main方法
17          A a = new A();
18          a.test();  //A
19 20          //父类的引用指向了子类
21          B b = new A();//非静态方法:子类重写了父类的方法
22          b.test();  //B
复制代码

 

此时方法的调用和左边定义的数据类型有关

非静态重写

才成为重写,子类的方法重写了父类的方法

public +。。。

 
复制代码
 1 public class B {
 2      public void test(){
 3          System.out.println("B>>test");
 4  5      }
 6  }
 7  8  public class A extends B{
 9      //Override 重写
10      //@Override// 注解:有功能的注释
11      public void test() {
12          System.out.println("A>>test");
13      }
14  }
15 16          A a = new A();
17          a.test();//A
18 19          //父类的引用指向了子类
20          B b = new A();//非静态方法:子类重写了父类的方法
21          b.test();//A
复制代码

 

此时B调用的是A的方法,和左边的定义无关。

 

总结

 
复制代码
 1 重写:需要有继承关系,子类重写父类的方法
 2      1. 方法名必须相同
 3      2. 参数列表也必须相同
 4      3. 修饰符:范围可以扩大:public > protected > default > private
 5      4. 抛出的异常:范围可以被缩小,但不能被扩大。
 6  7  重写:子类的方法必须要一致,但方法体不相同
 8  9  为什么需要重写:
10      1. 父类的功能子类不一定需要,或者不一定满足
11      2. 可以用快捷键重写。
复制代码

 

 
posted @   北海之上  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
/* 粒子吸附*/
点击右上角即可分享
微信分享提示