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");//若Test类不为抽象类,就必须实现其中的抽象方法,若Test类为抽象类,则eatB可不实现
}
}
接口和抽象类的区别与用法
最新推荐文章于 2023-04-24 15:04:09 发布