栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础之方法重写

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础之方法重写

重写只与非静态方法有关。

B是A的父类;

一般是

A a=new A();

但如果B为A的父类

可以这样

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

此时主程序调用a.test();

和b.test();

分别输出A模板的test和B模板的test

此时A和B中的方法但是静态的

调用只和左边有关

那么把方法改成非静态呢?

此时还是父子类有同名方法

我把子类的方法该成输出I hate

此时观察输出可以看出,输出的两个结果全变味了 I hate

此时就叫子类重写了父类的方法

用一下弹幕大佬的解释

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

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

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

重写的条件

1.非静态方法(无static)

2.子类方法修饰符相对于父类可以扩大(或者相同),不可以缩小(public>Protected>Default>private)

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

4.方法名和参数列表必须相同

5.抛出的异常,范围可以缩小,不能扩大。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970101.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号