public class Java_06_08_Q1 {
public static void main(String args[]) {
System.out.println("Q1:请问Java中接口与抽象类的区别是什么?应该如何从二者中做选择?请编写代码Demo说明。");
System.out.println("区别如下:\n" +
"1、定义上接口用interface,抽象类用abstract class\n" +
"2、接口中只能有抽象的方法,接口一旦被实现,接口中定义的所有方法均需要实现;\n" +
"但抽象类中可以有抽象方法和非抽象方法,一旦被实现时,其中的方法可以不实现,或者部分实现\n" +
"3、类可以实现很多个接口,但只能继承一个抽象类\n" +
"一般描述一组规则或方法时用接口,描述虚拟物体的时候用抽象类");
}
}
interface TestInterface {
void eat();
void print();
}
interface TestInterfaceC {
void eatC();
void printC();
}
abstract class TestAbstractClass {
public void eatA() {
System.out.println("eat something");
}
public abstract void eatB();
}
class Test extends TestAbstractClass implements TestInterface, TestInterfaceC {
public void eat() {
System.out.println("eat");
}
public void print() {
System.out.println("print");
}
public void eatC() {
System.out.println("eat C");
}
public void printC() {
System.out.println("print C");
}
@Override
public void eatB() {
System.out.println("eat B");
}
}