首页 > 其他分享 >方法重写

方法重写

时间:2024-01-13 22:35:26浏览次数:24  
标签:子类 oop test 重写 方法 public

概念

重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但不能缩小:public>Protected>Default>private

  4. 抛出的异常:范围,可以被缩小,但不能扩大:ClassNotFoundException --> Exception(大)

重写:子类的方法和父类必要一致:方法体不同!

为什么需要重写:父类的功能,子类不一定需要,或者不一定满足!

注意点

两边方法类型必须一样,否则会失败

举例

将A类和B类中的public改成private

 

发现override报红了,小图标也没了

 

A类和B类的方法是带有static的

 

结果运行的方法不同(可使用debug查看)

 

A类和B类的方法只带有public

 

运行的方法是相同的(可使用debug查看)

 

快捷键

alt+insert,点击Override Method

 

可以选择要重写的方法

 

代码

//Java-零基础学习/src/oop/demo05/A
package oop.demo05;

//继承
public class A extends B {

   //Override 重写
   @Override //注解:有功能的注释
   public void test() {
       System.out.println("A=>test()");
  }
}

/*
//静态的方法和非静态的方法区别很大!
   //静态方法:方法的调用只和左边,定义的数据类型有关
   public static void main(String[] args) {

       //方法的调用只和左边,定义的数据类型有关
       A a = new A();
       a.test(); //A

       //父类的引用指向了子类
       B b = new A();//子类重写了父类的方法
       b.test();//B
   }
*/
//Java-零基础学习/src/oop/demo05/B
package oop.demo05;

//重写都是方法的重写,和属性无关
public class B {

   public void test() {
       System.out.println("B=>test()");
  }

}
//Java-零基础学习/src/oop/Application
package oop;

import oop.demo05.A;
import oop.demo05.B;

//一个项目应该只存在一个main方法
public class Application {

   //静态的方法和非静态的方法区别很大!
   //静态方法:方法的调用只和左边,定义的数据类型有关
   public static void main(String[] args) {

       //方法的调用只和左边,定义的数据类型有关
       A a = new A();
       a.test(); //A

       //父类的引用指向了子类
       B b = new A();//子类重写了父类的方法
       b.test();//B
  }
}
 

标签:子类,oop,test,重写,方法,public
From: https://www.cnblogs.com/poiuyjoey/p/17963122

相关文章

  • 回顾方法的定义
    概述方法的定义修饰符返回类型break:跳出switch,结束循环和return的区别方法名:注意规范就OK见名知意参数列表:(参数类型,参数名)...异常抛出:疑问,后面讲解代码//Java-零基础学习/src/oop/demo01/Demo01packageoop;​importjava.io.IOException;​//Demo01类......
  • 回顾方法的调用
    概述方法的调用:递归静态方法非静态方法形参和实参值传递和引用传递this关键字:疑问,后面讲解快捷键点击SplitRight 可以分成两个页面 输入new加类名,使用alt+enter 会自动补充实例化类的语句 输入非void方法名称,使用alt+enter 会自动添加变......
  • 解决 DELPHI 中执行外部命令出现屏幕一闪的问题的方法
    解决DELPHI中执行外部命令出现屏幕一闪的问题的方法有的时候我们在DELPHI中使用ShellExecuteEx(exInfo:TShellExecuteInfo)函数执行一些外部命令,但会出现,屏幕一闪的问题,解决方法如下:设置exinfo.nShow:=SW_HIDE;//隐藏命令执行的窗口,不会出现屏幕一闪的情况在exinfo......
  • js 排序方法
    数组有两个方法可以用来对元素重新排序:reverse()和sort()。顾名思义,reverse()方法就是将数组元素反向排列。比如:letvalues=[1,2,3,4,5];values.reverse();alert(values);//5,4,3,2,1这里,数组values的初始状态为[1,2,3,4,5]。通过调用reverse()反向排序,......
  • js 队列方法
    就像栈是以LIFO形式限制访问的数据结构一样,队列以先进先出(FIFO,First-In-First-Out)形式限制访问。队列在列表末尾添加数据,但从列表开头获取数据。因为有了在数据末尾添加数据的push()方法,所以要模拟队列就差一个从数组开头取得数据的方法了。这个数组方法叫shift(),它会删除......
  • js 栈方法
    ECMAScript给数组提供几个方法,让它看起来像是另外一种数据结构。数组对象可以像栈一样,也就是一种限制插入和删除项的数据结构。栈是一种后进先出(LIFO,Last-In-First-Out)的结构,也就是最近添加的项先被删除。数据项的插入(称为推入,push)和删除(称为弹出,pop)只在栈的一个地方发生......
  • 引用CDN内容的方法总结
    引用CDN内容的方法总结 1.1.1摘要CDN相信大家都听说过,甚至使用过相关的技术,也许有些人会回答“没有听说过和使用过该技术”,真的是这样吗?CDN的全称是ContentDeliveryNetwork,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近......
  • js 搜索和位置方法
    ECMAScript提供两类搜索数组的方法:按严格相等搜索和按断言函数搜索。1.严格相等:ECMAScript提供了3个严格相等的搜索方法:indexOf()、lastIndexOf()和includes()。其中,前两个方法在所有版本中都可用,而第三个方法是ECMAScript7新增的。这些方法都接收两个参数:要查找的元......
  • js 操作方法
    如果数组的元素是数值,或者是其valueOf()方法返回数值的对象(如Date对象),这个比较函数还可以写得更简单,因为这时可以直接用第二个值减去第一个值:functioncompare(value1,value2){returnvalue2-value1;}比较函数就是要返回小于0、0和大于0的数值,因此减法操作完......
  • 方法练习
    ......