抽象类(意义:将方法的设计和方法的实现分开了)
概念:抽象类是一种模版模式,抽象类为所有子类提供了一个通用模版,子类可以在这个模版的基础上进行扩展;通过抽象类,可以避免子类设计的随意性,做到严格限制子类的设计,使子类之间更加通用。
要点:
1.有抽象方法的类只能定义成抽象类;
2.抽象类不能实例化,即不能用new来实例化抽象对象;
3.抽象类可以包含属性、方法、构造方法,但是构造方法不能用来new实例,只能用来被子类调用;
4.抽象类只能用来继承;
5.抽象方法必须被子类实现;(抽象方法必须被子类重写)
接口
--接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面的专业的实现了:规范和具体实现的分离;
--接口就是规范,定义的是一组规则,体现了现实世界中“如果你是。。。则必须能。。。”的思想;
--接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守;
接口的定义: [访问修饰符] interface 接口名 [extends 父接口1,父接口2...]{
--常量定义 //总是public static final
--方法定义 //总是public abstract
}
接口中只有:常量、抽象方法(方法不用加abstract)
注意:
1.子类通过implements来实现接口中的规范;
2.接口不能创建实例,但是可用于声明引用变量类型;
3.一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的;
4.接口支持多继承