接口:
(1)接口内定义的变量都是public static final范例的,不管是不是显现限制这些修饰符,且必需要被显式初始化,不然报错:
public interface Interface1 { /** * VARIABLE1显式增加public static final修饰符 * VARIABLE2隐式含有public static final修饰符 */ public static final String VARIABLE1="AAA"; String VARIABLE2="BBB"; /** * VARIABLE3未显式初始化,代码变异报错: * The blank final field VARIABLE3 may not have been initialized */ String VARIABLE3; }
(2)接口内定义的要领都是笼统要领,即不包括任何要领完成:
a.假如完成接口的类是平常类(非笼统类),则要完成该接口的一切要领,不然编译报错;
b.假如完成接口的类是笼统类,则能够只完成该接口的部份要领,不然抛出非常;
public interface Interface2 { /** * method1要领定义显式增加public abstract修饰符 * method2要领隐式含有public abstract修饰符,两个要领都是笼统要领 */ public abstract String method1(); String method2(); }
/** * 平常类Class1完成Interface2接口,必需完成一切接口要领 * */ public class Class1 implements Interface2 { @Override public String method1() { // TODO Auto-generated method stub return null; } @Override public String method2() { // TODO Auto-generated method stub return null; } }
/** * 笼统类Class2完成Interface2接口,能够只完成要领method1 */ public abstract class Class2 implements Interface2 { @Override public String method1() { // TODO Auto-generated method stub return null; } }
笼统类:
(1)笼统类也是类,跟平常类一样能够有平常的变量、带完成的要领,能够有组织函数,但不能被实例化,只能用来继续;
平常要领必需带要领体,笼统要领不能带要领体;
public abstract class AbstractClass1 { String variable1;//平常变量 public static final String VARIABLE2="AAA";//定义静态常量 public void method1(){ }//平常要领,必需有要领体 abstract void method2();//笼统要领,不能有要领体 AbstractClass1(){//能够定义组织函数,但笼统类不能实例化,只能被继续 System.out.println("此为组织函数"); } }
接口和笼统类另有一个最大的差别,一个类能够完成多个接口,但只能继续一个类;
在现实运用中,接口是最为经常使用的,假如多个接口的完成有大众的部份,则能够斟酌将这部份内容提取到笼统类中,然后继续该笼统类。也就是说,笼统类供应大众要领的完成,能够疾速开辟且统一管理,又许可你的类完整完成本身的一切要领,不会涌现紧耦合的题目。
以上就是java接口和笼统类的引见(代码示例)的细致内容,更多请关注ki4网别的相干文章!