接口(Interface):
接口是抽象方法的集合,只能继承接口,不能实例,通过接口的实现类使用,接口可以继承多个接口,只能写抽象方法。
格式:[修饰符] interface 接口名 extends 父接口1,父接口2,…
{
//零到多个静态常量定义…
//零到多个抽象方法定义…
}
静态常量:必须初始化;
抽象方法:只能用public修饰符;
interface JieKou{
//抽象方法
public void say();
public void eat();
}
在Java中,类是不允许多继承的,但接口允许多继承。
在接口的多继承中使用extends关键字,在其后跟着继承接口。
public interface JieKouOne extends JieKou , JieKouTwo
接口的实现:
创建一个接口的实现类,可以实现多个接口。可以被类继承。
命名:在接口类后面加上Impl(规范)。
实现接口:类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
格式:…implements 接口名称[, 其他接口名称, 其他接口名称…, …] …
//接口的实现类
public class ShiXianImpl implements JieKou{
public void say(){
System.out.println("小明说");
}
public void eat(){
System.out.println("小明吃");
}
public static void main(String args[]){
ShiXianImpl m = new ShiXianImpl ();
m.say();
m.eat();
}
}
接口和类的区别:
接口不能实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。
修饰符:
访问控制符(public、friendly、abstract、final)
public:将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。
friendly:默认的修饰符,只有在相同包中的对象才能使用这样的类。
abstract:将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
final:将一个类生命为最终(即非继承类),表示他不能被其他类继承。
成员变量修饰符(public、private、protected、friendly、final、static)
public:指定该变量为公共的,他可以被任何对象的方法访问。
private:指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
protected:指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
friendly:在同一个包中的类可以访问,其他包中的类不能访问。
final:指定此变量的值不能变。
static:指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
方法修饰符(public、private、final、friendly、static、synchronize、native)
public:指定该方法可以从所有类访问
private:指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)
protected:指定该方法可以被它的类和子类进行访问。
final:指定该方法不能被重载。
static:指定不需要实例化就可以激活的一个方法。
synchronize:同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。
native:本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。
初始化块(static)
static:使用static修饰的初始化块被称为静态代码块