抽象类和接口的异同之处
相同点:
1.都不可以实例化 但可以向上或向下转型
- 向上转型创建对象
Father fu1=new Son();
- 向下转型创建对象
Son son=(Son)fu1;
2.都需要强制重写 除非是抽象类
@Override
public void eat() {}
不同点:
1.子类使用的关键字不同
抽象类:extends 接口:implements
2.抽象方法属性可以不赋值,接口则必须
抽象类:
private String name;
接口:
int age=18;
3.抽象类里可以有普通方法和抽象方法 接口里只能有抽象方法
4.接口可以不写abstract 抽象方法则必须写
5.抽象类可以用所有权限 接口只能用public
6.抽象类单继承 接口多继承
抽象类:
public class Teacher extends Person{}
接口:
public interface Skxx extends Sc,Tz{}
7.抽象类可以有构造函数 接口不行