JAVA中的几句箴言:java
抽象类和接口中均可以包含静态成员变量设计
抽象类中能够包含静态方法,接口内不能包含静态方法继承
abstract不能实例化,只能继承,能够有抽象成员接口
抽象类是对类抽象,而接口是对行为的抽象。开发
接口:自己没有任何实现,由于Java不涉及表象,而之描述public行为,因此Java接口比Java抽象类更为抽象化。Java的接口能够有public,静态的和final的属性。模板
抽象类:不想给出定义,百度给出的定义过高深。不适合我这种小白。效率
一、为何接口内的成员只能是静态的?变量
因为接口不能实例化,非静态成员只能经过实例调用,因此必须定义为static的百度
二、为何抽象类也不能被实例化,但抽象类里面能够定义非静态的: 方法
因为子类与抽象类的关系中,子类继承抽象类,子类实例化,首先要执行父类的构造器,有构造器就有实例化。
三、为何使用接口?
接口在实际开发过程当中最大好处是,你能够按照设计,先把接口写好,而后分配大伙干活的时候,告诉a们去用写好的接口去实现他们的具体功能,而告诉b们,去写那些已经写好可是没有具体的代码的接口,这样能够提升工做效率。对了,另外接口解决了java不能多继承的问题。
四、为何使用抽象类:
抽象类为子类提炼出公共的方法,并提供一个或几个抽象方法留给子类实现;抽象类的设计体现了模板模式的设计思想,即抽象类公共的普通方法依赖一个抽象方法,而抽象方法则推迟到子类中实现细节。