1、接口的定义:
JAVA接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的定义没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的功能。
2、格式
[public] interface 接口名称 []extends 父接口1,父接口2,父接口3]{
//静态常量
[public] [static] [final] 数据类型 常量名=常量值;
//抽象方法
[public] [abstract] [native] 返回值类型 方法名(参数列表);
}
3、类实现接口格式:
【修饰符】 class 类名 【extends 父类名】【implements 接口1,接口2,接口3,】{
类成员变量和成员方法;
为接口1中的所有方法编写方法体,实现接口1;
为接口2中的所有方法编写方法体,实现接口2;
为接口3中的所有方法编写方法体,实现接口3;
}
4、接口的特性:
1)接口不能被实例化;
2)接口中所有方法都是抽象的;
3)接口中的字段必须是静态常量
4)接口中所有的成员都必须是public
5)接口可以被多重实现或者继承
6)接口没有构造器
5、如何访问接口的常量
接口名.常量名
代码分享:
public interface MyInterface1 {
public static final int a=1;
//等同于
int b=2;
public abstract void eat1();
//等同于
void walk1();
}
public class DogInterface implements MyInterface1 {
@Override
public void eat1() {
System.out.println("狗狗爱吃肉");
}
@Override
public void walk1() {
System.out.println("狗狗爱跑步");
}
public void sleep(){
System.out.println("狗狗爱睡觉");
}
}
public class CatInterface implements MyInterface1 {
@Override
public void eat1() {
System.out.println("猫猫爱吃鱼");
}
@Override
public void walk1() {
System.out.println("猫猫爱爬墙");
}
}
public class InterfaceIest {
public static void main(String[] args) {
MyInterface1 d1 = new DogInterface();//多态性,接口的引用----->指向类的实例对象
d1.eat1();
d1.walk1();
//d1.sleep();//编译通不过,因为编译时认为的d1是MyInterface,MyInterface并没有这个sleep方法
//d1.b;//不能通过实例化对象来访问接口的常量
MyInterface1 c1 = new CatInterface();
c1.walk1();
c1.eat1();
DogInterface d2 = new DogInterface();
d2.eat1();
d2.walk1();
d2.sleep();
System.out.println("如何访问接口的常量");
//如何访问接口的常量
System.out.println(MyInterface1.a+" b:"+ MyInterface1.b);
}
}
//结果
狗狗爱吃肉
狗狗爱跑步
猫猫爱爬墙
猫猫爱吃鱼
狗狗爱吃肉
狗狗爱跑步
狗狗爱睡觉
如何访问接口的常量
1 b:2
一个接口可以实现多重继承,一个接口可以继承多个接口:
public interface MyInterface2 {
String name="yang";
void eat2();
}
public interface MyInterface3 extends MyInterface1,MyInterface2{
public void eat3();
}
一个类可以同时实现多个接口
public class MyInterface implements MyInterface1, MyInterface2 {
//实现了两个接口的类
//实现了两个接口中所有的方法
public void eat1() {
System.out.println("第一次吃饭!!!");
}
public void walk1() {
System.out.println("第一次走路!!!");
}
public void eat2(){
System.out.println("第二次吃饭!!!");
}
}
public class MyInterfaceTest implements MyInterface3 {
@Override
public void eat1() {
System.out.println("一天三顿:第一次吃饭");
}
@Override
public void eat2() {
System.out.println("一天三顿:第二次吃饭");
}
@Override
public void eat3() {
System.out.println("一天三顿:第三次吃饭");
}
@Override
public void walk1() {
System.out.println("一天三顿:第一次走路");
}
}

131

被折叠的 条评论
为什么被折叠?



