1.JAVA 接口
在JAVA中,接口有两种意思:
一种是指系统对外提供的所有服务。类的所有能被外部使用者访问的方法构成了类的接口。
二是指用 interface 关键字定义的实在的接口,也称为接口类型。它用于明确的描述系统对外提供的所有服务,能够更加清晰的把系统的实现细节与接口分离。
接口 类型和抽象类都不能实例化。
接口的特征:
接口中的成员变量默认都是 public static final 类型的,必须被显示初始化。
接口中的方法默认都是public abstract 类型的。
接口中只能包含 public staic final 类型的成员变量和public abstract 类型的方法。
接口没有构造方法,不能被实例化。
一个接口不能实现另一个接口,但它可以继承多个其他接口。
接口必须通过类来实现它的抽象方法。类实现接口的关键字为 implements。
与子类继承抽象父类相似,当类实现了某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须定义为抽象类。
不允许创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例。
InterfaceTest t = new ClassTest(); //ClassTest 实现了这个接口
一个类只能继承一个直接的父类,但是可以实现多个接口。
public class MyApplet extends Japplet implements Runnable,MounlisterInterface{ }
对于接口的语法就体现在下面的一个实例中
Java代码
public interface InterfaceTest{
public static final int MAX_AGE =100;//变量默认的都是 public static final 类型
public static final int MIN_AGE = 18;
public abstract void showInfo(); //方法默认的都是 public abstract 类型的
int M_CHANCE = 10 ;//合法 默认的都是 public static final 类型
void method();//合法 默认的都是 public abstract 类型的
//void methoda(){System.out.println("methoda");}//编译出错,接口中只能包含抽象方法,即没有方法体
// interface methods cannot have body
//public InterfaceTest(){} //接口中不允许定义构造方法
}
public interface InterfaceTest{
public static final int MAX_AGE =100;//变量默认的都是 public static final 类型
public static final int MIN_AGE = 18;
public abstract void showInfo(); //方法默认的都是 public abstract 类型的
int M_CHANCE = 10 ;//合法 默认的都是 public static final 类型
void method();//合法 默认的都是 public abstract 类型的
//void methoda(){System.out.println("methoda");}//编译出错,接口中只能包含抽象方法,即没有方法体
// interface methods cannot have body
//public InterfaceTest(){} //接口中不允许定义构造方法
}
2.接口与抽象类
抽象类与接口都位于继承树的上层,它们具有以下相同点
代表系统的抽象层。
都不能被实例化
都能包含抽象方法。
区别
在抽象类中,可以有部分的方法为非抽象方法,从而避免在子类中重复实现它们,提高代码的可重用性。而接口只能包含抽象方法。
一个类只能继承一个直接的父类,这个父类有可能是抽象类。但一个类可以实现多个接口,这是接口的优势所在。
接口是构建耦合的软件系统的重要法宝。由于接口用于描述系统对外提供的所有服务,因此接口中的成员变量和方法都必须是public 的,确保外部访问者能访问它们。
接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法全部是抽象的。
接口不涉及和任何具体实例相关的实现细节,因此接口没有构造方法,不能被实例化,没有实例变量。
抽象类的优势在于可以为部分方法提供默认的实现,避免子类重复实现它们,从而提高代码的可重用性。但抽象的这一优势限制了多继承。
接口的优势在于一个类可以实现多个接口,接口获得这一优势是以不允许为任何方法提供实现为代价的。
在JAVA中,接口有两种意思:
一种是指系统对外提供的所有服务。类的所有能被外部使用者访问的方法构成了类的接口。
二是指用 interface 关键字定义的实在的接口,也称为接口类型。它用于明确的描述系统对外提供的所有服务,能够更加清晰的把系统的实现细节与接口分离。
接口 类型和抽象类都不能实例化。
接口的特征:
接口中的成员变量默认都是 public static final 类型的,必须被显示初始化。
接口中的方法默认都是public abstract 类型的。
接口中只能包含 public staic final 类型的成员变量和public abstract 类型的方法。
接口没有构造方法,不能被实例化。
一个接口不能实现另一个接口,但它可以继承多个其他接口。
接口必须通过类来实现它的抽象方法。类实现接口的关键字为 implements。
与子类继承抽象父类相似,当类实现了某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须定义为抽象类。
不允许创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例。
InterfaceTest t = new ClassTest(); //ClassTest 实现了这个接口
一个类只能继承一个直接的父类,但是可以实现多个接口。
public class MyApplet extends Japplet implements Runnable,MounlisterInterface{ }
对于接口的语法就体现在下面的一个实例中
Java代码
public interface InterfaceTest{
public static final int MAX_AGE =100;//变量默认的都是 public static final 类型
public static final int MIN_AGE = 18;
public abstract void showInfo(); //方法默认的都是 public abstract 类型的
int M_CHANCE = 10 ;//合法 默认的都是 public static final 类型
void method();//合法 默认的都是 public abstract 类型的
//void methoda(){System.out.println("methoda");}//编译出错,接口中只能包含抽象方法,即没有方法体
// interface methods cannot have body
//public InterfaceTest(){} //接口中不允许定义构造方法
}
public interface InterfaceTest{
public static final int MAX_AGE =100;//变量默认的都是 public static final 类型
public static final int MIN_AGE = 18;
public abstract void showInfo(); //方法默认的都是 public abstract 类型的
int M_CHANCE = 10 ;//合法 默认的都是 public static final 类型
void method();//合法 默认的都是 public abstract 类型的
//void methoda(){System.out.println("methoda");}//编译出错,接口中只能包含抽象方法,即没有方法体
// interface methods cannot have body
//public InterfaceTest(){} //接口中不允许定义构造方法
}
2.接口与抽象类
抽象类与接口都位于继承树的上层,它们具有以下相同点
代表系统的抽象层。
都不能被实例化
都能包含抽象方法。
区别
在抽象类中,可以有部分的方法为非抽象方法,从而避免在子类中重复实现它们,提高代码的可重用性。而接口只能包含抽象方法。
一个类只能继承一个直接的父类,这个父类有可能是抽象类。但一个类可以实现多个接口,这是接口的优势所在。
接口是构建耦合的软件系统的重要法宝。由于接口用于描述系统对外提供的所有服务,因此接口中的成员变量和方法都必须是public 的,确保外部访问者能访问它们。
接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法全部是抽象的。
接口不涉及和任何具体实例相关的实现细节,因此接口没有构造方法,不能被实例化,没有实例变量。
抽象类的优势在于可以为部分方法提供默认的实现,避免子类重复实现它们,从而提高代码的可重用性。但抽象的这一优势限制了多继承。
接口的优势在于一个类可以实现多个接口,接口获得这一优势是以不允许为任何方法提供实现为代价的。