不好意思,记错了,自己解决了
okk
不是说接口之中方法加了dafault,在类中继承接口就不用重写方法了吗,我这照片里面还是要重写
你这里重写的是println方法,你的println方法是没有被default修饰的
class TestDefaultImpl01 implements TestDefault
这个代码中
TestDefaultImpl01
这个是啥意思呀
这个是了类名,证明这个是TsetDefault接口的实现类
老师重写接口的默认方法是要这个样子吗?
继承重写我记得要名字完全一样
是的,这就是重写了默认方法了。你实例化这个实现类然后输出这个默认方法,重写之后是输出你现在截图的这个
为什么new的对象是这个不是TestDefault
因为接口类型不可以new对象呀
怎么会 有错误呢?
这个接口什么报错了呢
已解决
在类中构建接口的对象,格式必须时 接口 变量名 = new 类名 这样吗
对,这个叫面向接口编程,后面会大量的使用的。
IDEA
老师这都JDK16.0了,为嘛还说版本不够高,还是因为IDEA版本拉低了它的高度。
刚查了下说是IDEA>Project>project language level没设置到位,我刚开始是SDK default,为嘛要这样设置
需要匹配对应版本的jdk特性
class TestA implements A{ @Override public void moren() { System.out.println("TestA.moren"); } }
为什么我敲 public class TestA implements A{} 会报错,删掉public就好了
因为TestA已经存在了,有public修饰的这个类名必须和文件名一样,你使用public修饰,就是这个文件名需要叫TestA,但是这个文件已经存在了,所有会报错
老师,我与前面的又绕糊涂了
A a = new Test_A() //这是父类引用指向子类对象
a.moren();
问,这时候a是属于A的,还是Test_A的,咋运行出来就是重写的方法呢
a引用的是new Test_A();注意是对象调用方法哦~