面向对象——方法重写

本文探讨了Java中的方法重写概念,强调了重写需要在继承关系下进行,且重写方法必须与被重写方法有相同的名称和参数列表。通过示例代码展示了静态与非静态方法的区别,指出静态方法不能被重写,而重写主要涉及非静态方法。此外,还解释了重写的原因,即为了满足子类特定功能需求。

面向对象——方法重写

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

  • 方法名必须相同
  • 参数列表必须相同
  • 修饰符:范围可以扩大,不能缩小:public>protected>default>private
  • 抛出的异常:范围可以缩小,不能扩大:ClassNotFoundException>Exception(大)

重写,子类的方法和父类必须要一致;方法提不同!

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

package(包)com.du.OOP.demo02:类Application(mian()方法)

package com.du.OOP.demo02;


import com.du.OOP.demo05.A;
import com.du.OOP.demo05.B;
import com.du.OOP.demo05.Student;

//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {

        //1.A和B中的test()方法是自己手写定义的,并且是static方法
        //static方法:方法的调用只和左边,定义的数据类型有关
        A a = new A();
        a.test();//A=>test()

        //父类的引用指向了子类
        B b = new A();
        b.test();//B=>test()

        //2.B中写test1()非static方法,A中使用快捷键alt+insert点击override,选择test1()进行方法重写
        a.test1();//A=>test1()
        b.test1();//A=>test1()
        //因此,static方法和非static方法区别很大,重写只和非static方法有关,和static方法无关
    }
}

package(包)com.du.OOP.demo05:类A(方法重写)

package com.du.OOP.demo05;

public class A extends B{

    //1.A和B中的test()方法是自己手写定义的,并且是static方法
    public static void test(){
        System.out.println("A=>test()");
    }


    //2.B中写test1()非static方法,A中使用快捷键alt+insert点击override,选择test1()进行方法重写
    @Override //注解:有功能的注释!
    public void test1() {
        System.out.println("A=>test1()");
    }
}

package(包)com.du.OOP.demo05:类B(方法重写)

package com.du.OOP.demo05;

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

    //1.A和B中的test()方法是自己手写定义的,并且是static方法
    public static void test(){
        System.out.println("B=>test()");
    }

    //2.B中写test1()非static方法,A中使用快捷键alt+insert点击override,选择test1()进行方法重写
    public void test1(){
        System.out.println("B=>test1()");
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studyingdda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值