默认与静态方法
1、接口里的静态方法,不能被实现类重写,我理解,因为所有的静态成员都不能被重写。但是在测试类里,接口的引用指向实现类实例对象后,引用.静态方法名();这种调用形式为什么行不通。
2、接口里写有默认方法,实现类没去重写,在测试类里,当接口的引用指向实现类实例对象后,引用能调用实现类没去重写的默认方法吗?
13
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕阿莹
2019-06-10 18:45:33
1、因为这个静态方法是接口中的,既不能被子类重写,也不能被子类继承,所以实现类中实际上是没这个方法的,所以调用不到。
2、默认方法是可以的:
public interface A { static void a() { System.out.println("这个是接口类中的静态方法"); } default void b() { System.out.println("这个是接口类中的默认方法"); } } package test03; public class B implements A { } package test03; public class C { public static void main(String[] args) { A b = new B(); b.b(); } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星