接口>抽象类>虚方法
接口
1.接口只提供方法规约,不提供方法体;
2.接口中的方法不能用关键字修饰;
3.接口里不能有接口和变量;
4.接口里的方法在子类中必须全部实现;
5.接口可以实现多重继承;
抽象类
1.抽象类可以从接口继承;
2.抽象类中的实体方法在子类中不可以重写,只可以被引用;
3.抽象类中的抽象方法不可以有方法体,抽象类中的抽象方法在子类中必须重写;
4.抽象类中的虚方法在子类中可以选择性的重写;
虚方法
1.可以在子类选择性的重写;
2.不重写也可被子类调用;
接口与抽象类的异同
1.抽象类的抽象方法和接口内的方法,在子类中必须全部被实现;
2.抽象方法和接口中的方法都不可以有方法体;
抽象方法与虚方法的异同
1.抽象方法所在的类必须是抽象类,虚方法可以在任何类里;
2.抽象方法必须被重写,虚方法的重写有选择性;
3.抽象方法不可以被子类调用,虚方法可以被子类调用;
4.抽象方法不可以有方法体,虚方法必须有方法体;