继承之方法重写

莱莱  金牌会员 | 2022-8-25 04:08:13 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 888|帖子 888|积分 2664

1.静态与非静态方法在继承中的应用

    (1)静态方法

    (2)非静态方法
    当把A和B类的test方法的static去掉之后就会出现下图标注的圈,这就表示是重写。

    快速生成重写方法的快捷键:control + enter 或 alt + insert会出现如下图所示:

    下图当进行方法的重写之后走的都是A类的test方法,也就是当子类重写了父类的方法后就会都走子类的方法。

2.重写注意事项

    (1)需要有继承关系,而且是子类重写父类的方法与父类的属性无关。    (2)在子类中重写父类的方法时两个方法名必须相同,参数列表也必须相同。    (3)子类的修饰符:范围可以扩大但不能缩小:public > protected > default > private 比如父类的修饰符为default继承到子类的时候可以写成public,反之则不行。注:若父类是private则在子类中不能扩大。    (4)抛出的异常:范围可以被缩小但不能被扩大    (5)重写时子类的方法必须与父类相同,方法体不同3.重写的目的

    (1)父类的功能子类不一定需要或不一定满足点击查看代码
  1. package com.Tang.oop.demo05;
  2. public class Application {
  3.     public static void main(String[] args) {
  4.        //对于具有继承关系的类的静态方法的调用
  5.         // 只和左边定义的数据类型有关
  6.         A a = new A();
  7.         a.test();
  8.         //父类的引用指向子类
  9.         B b = new A();//子类重写了父类的方法
  10.         b.test();
  11.     }
  12. package com.Tang.oop.demo05;
  13. public class A extends B{
  14.     //Override 意思就是重写
  15.     @Override//注解:有功能的注释
  16.     public void test() {
  17.         System.out.println("A=>test()");
  18.     }
  19. }
  20. package com.Tang.oop.demo05;
  21. //重写都是方法与属性无关
  22. public class B {
  23.     public void test(){
  24.         System.out.println("B=>test()");
  25.     }
  26. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表