1.什么是抽象类
特点整理:
抽象类,不能被实例化,非抽象的类的子类,可以实例化;
抽象类中不能含有抽象方法,但是如果是抽象方法,就一定是抽象类;
抽象类中方法只是申明,但无具体方法体内容;
抽象类中方法必须使用abstract进行
抽象方法必须为public与protected修饰,不能使用private(如果方法不能被继承,子类方法将无法得到实现)
如果抽象类被子类继承,则子类需要实现抽象类的抽象方法,如果子类没有实现父类的抽象方法,在需要将子类也定义为抽象方法。
抽象类就是为了继承而存在的,如果不继承抽象类方法无法实现与使用。
2.什么接口
接口类中的变量会被隐形地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误)
使用interface 的作为修改
接口类中方法会被隐形地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误)
接口中所有的方法不能有具体的实现(接口中的方法必须都是抽象方法)
一个类可以继承多个接口,解决类继承1对1的操作
3.语法不同点
1.语法层面上的区别
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
以上来自https://www.cnblogs.com/dolphin0520/p/3811437.html
网友评论