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. 可以用快捷键重写。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗