抽象类和接口的区别及各自特点 (接口与抽象类区别讲解)

抽象类和接口的主要区别可以总结如下

  • 抽象类中可以没有抽象方法,也可以抽象方法和非抽象方法共存
  • 接口中的方法在JDK8之前只能是抽象的,JDK8版本开始提供了接口中方法的default实现
  • 抽象类和类一样是单继承的;接口可以实现多个父接口
  • 抽象类中可以存在普通的成员变量;接口中的变量必须是static final类型的,必须被初始化,接口中只有常量,没有变量

抽象类和接口的区别及各自特点,接口与抽象类有什么共同点和区别

public interface MyInterface {
  
    // 定义一个已经实现的方法,使用default表明
    default void say(String message){
        System.out.println("Hello "+message);
    }
    // 普通的抽象方法
    void test();
}



class MyClass implements MyInterface{
    @Override
    public void test() {
        System.out.println("test...");
    }
}


class Main{
    public static void main(String[] args) {
      
        MyClass client = new MyClass();
      
        client.test();
      
        client.say("World...");
      
      
    }
}

基础很重要