抽象类和接口的区别

一、实现不一样

        抽象类(abstract class)是子类通过extends这个关键字来继承的,而接口(interface)是使用implements来实现这个接口。

二、构造函数不一样

        抽象类是可以具有构造函数的,如下:

//抽象类
package com.learn;

public abstract class AbstractPerson {

    public AbstractPerson(){
        System.out.println("AbstractPerson构造函数");
    }
}

//抽象类的继承类
package com.learn;

public class Person extends AbstractPerson{

    public Person(){
        System.out.println("Person构造函数");
    }

    public static void main(String[] args) {
        new Person();
    }
}

//运行结果
AbstractPerson构造函数
Person构造函数

         而接口是不能有的。

三、main方法

        抽象类是可以具有main方法的,并且是可以运行的,接口不可以有。

四、实现的数量不一样

        类可以实现多个接口,而只能继承一个抽象类。


版权声明:本文为he1810368646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。