接口和抽象类的区别说明

戚薇 Java面经 发布时间:2023-06-28 21:59:12 阅读数:7397 1
下文笔者讲述接口和抽象类的区别说明
学习完本篇之后,你将彻底掌握接口和抽象类的区别,如下所示

区别一:实现方式

 
 抽象类的子类使用extends来继承
 接口则是使用implements来实现接口
1.抽象类
public abstract class MyAbstract {}

//继承抽象类
public class Demo extends MyAbstract {}

2.接口
public interface MyInterface {}

//实现接口
public class Demo implements MyInterface { }

区别二:构造函数

抽象类可以有构造函数
  接口不能有
public abstract class MyAbstract {
    public MyAbstract(String msg) {
        //...
    }   
}
 
public interface MyInterface {
    // 错误
    public MyInterface() {
        //
    }
}

区别三:main()方法

抽象类有main()方法,main方法也可以运行
  接口不能有 main()方法
public abstract class MyAbstract {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
 
public interface MyInterface {
 
    // 错误
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
 
}

区别四:实现数量

类可实现多个接口
类只能继承一个抽象类
import java.io.Serializable;
 
public class Demo implements MyInterface, Serializable,Comparable<String> {
    @Override
    public int compareTo(String o) {
        return 0;
    }
}

类实现3个接口  
import java.util.Arraylist;
public class Demo extends MyAbstract, ArrayList<String> {
}

区别五:访问修饰符

接口中的方法默认使用 public 修饰
抽象类中的方法可以是任意访问修饰符。 
public interface MyInterface {
    void show();
}
 //等效于以下写法 
public interface MyInterface {
    public void show();
}

抽象类中的方法定义均合法

public abstract class MyAbstract {
    public void show1() {}
    protected void show2() {}
    private void show3() {}
    void show4() {}
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202306/16879607816930.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者