方法的重写

方法与方法的定义

因为静态方法是类的方法,而非静态是对象的方法

有static时,b调用了B类的方法,因为b是用b类定义的

没有static时,b调用的是对象的方法 ,而b是用A类new的

即b是A new出来的对象,因此调用了A的方法


静态方法和非静态方法的区别

1.静态方法

package oop.Demo07;
//重写就是方法的重写,和属性无关
public class B {
    public static void text(){
        System.out.println("B=>text()");
    }
}
package oop.Demo07;
​
public class A extends B {
    public static void text(){
        System.out.println("A=>text()");
    }
}
 
package oop.Demo07;
import oop.Demo07.*;
public class APPlication {
    public static void main(String[] args) {
        //方法的调用只和左边 定义的数据类型有关
        A a=new A();
        a.text();
​
        //父类的引用指向了子类
        B b=new A();
        b.text();
    }
}
//输出:A=>text()
//     B=>text()

2.非静态方法

package oop.Demo07;
//重写就是方法的重写,和属性无关
public class B {
    public void text(){
        System.out.println("B=>text()");
    }
}
package oop.Demo07;
​
public class A extends B {
    @Override
    public void text() {
        System.out.println("A=>text()");
    }
}
package oop.Demo07;
public class APPlication {
    public static void main(String[] args) {
        //方法的调用只和左边 定义的数据类型有关
        A a=new A();
        a.text();
​
        //父类的引用指向了子类
        B b=new A();//子类重新的父类的方法
        b.text();
    }
}
//输出:A=>text()
//     A=>text()

总结:

条件:需要有继承关系,子类重新父类的方法

特点:

  • 1.方法名必须相同

  • 2.参数列表必须相同

  • 3.修饰符:范围可以扩大,但不能缩小:例如 父类是private 可以转变为public,反向不能

    public>protected>Default(默认)>private

  • 4.抛出的异常:范围,可以为缩小,但不能扩大

ClassNotFoundException:找不到类(小)----->Exception(大)

  • 5.重写,子类的方法和父类必须一致,方法体(方法里的内容)不同

为什么需要重写:

  • 父类的功能,子类不一定需要,或者不一定满足

    例如:子类在父类的基础上进行升级,长江后浪推前浪,求同存异

快捷键:Ctrl + O 或者 Alt+insert---->Override Methods

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值