如果下面是一个奇怪的行为,我只是在漫游。Java实例化界面结果奇怪行为
public interface TestInterfaceTwo {
public void sayBye();
}
public interface TestInterfaceOne {
public void sayHI();
}
public abstract class TestIntefaceClass implements TestInterfaceOne, TestInterfaceTwo {
@Override
public void sayHI() {
System.out.println("HI");
}
@Override
public void sayBye() {
System.out.println("Bye");
}
}
public class InterfaceImplementer extends TestIntefaceClass{
@Override
public void sayHI() {
System.out.println("SAY HI");
}
}
public static void main(String[] args) {
InterfaceImplementer impl = new InterfaceImplementer();
TestInterfaceOne impl1 = new InterfaceImplementer();
TestInterfaceTwo impl2 = new InterfaceImplementer();
TestIntefaceClass impl3 = new InterfaceImplementer();
impl.sayHI();
impl.sayBye();
impl1.sayHI();
impl2.sayBye();
impl.sayBye();
impl3.sayBye();
impl3.sayHI();
}
这些调用导致以下
SAY HI
Bye
SAY HI
Bye
Bye
Bye
SAY HI
我需要知道,如果接口实例从接口继承只有预期的行为,或者如果它继承抽象类。它似乎是后者,我想知道这个解释,如果它是错误或功能。 :)
1.让你的代码可读,每行1个命令!!! 2.添加你的问题,我不明白你问什么 – Dima 2014-10-22 10:44:58
只是.. :)意识到我使用了错误的按钮感谢评论 – Tharanga 2014-10-22 10:46:10
它从抽象类继承。所以AbstractClass就像Parent,而你的InterfaceImplementer是你抽象类的孩子。所以它的孩子(比如说人类孩子)从他/她的父母身上继承基因和一些特征。 – SMA 2014-10-22 10:49:51