定义及注意事项:
接口
1.接口是一种引用数据类型
2.有interface定义
3.只能包含抽象方法(常量、默认方法、静态方法、私有方法)
4.不能实例化
5.接口是需要被实现的,实现类:必须重写接口中的所有抽象方法
6.一个类可以实现多个接口,若又继承又实现时,应先继承
7.书写接口必须重写方法
代码演示:
package ooday03; //接口的演示 public class InterfaceDemo { public static void main(String[] args) { // Inter inter = new Inter(); 编译错误,接口不能实例化 } } //接口演示语法: interface Inter{ abstract void show(); void test(); // 接口中的方法都是抽象的,前面默认有abstract // void say()抽象方法中不能有方法体; } //接口的实现 class InterImpl implements Inter{ public void show(){} //重写接口中的抽象方法,必须加public public void test(){} } // 接口的多实现 interface Inter1{ void show(); } interface Inter2{ void test(); } abstract class Aoo{ abstract void say(); } class Boo extends Aoo implements Inter1,Inter2{ @Override public void show() { } @Override public void test() { } @Override void say() { } } //演示即可欧继承接口 interface Inter3{ void show(); } interface Inter4 extends Inter3{ void test(); } class Coo implements Inter4{ public void test(){} @Override public void show() { } }
若是不理解,可以看我接下来使用动物类来调用接口,接口的作用在于使代码更清晰,哪些业务需要用到此接口
先定义一个动物类 public abstract class Animal { String name; int age; String color; Animal(){} Animal(String name,int age, String color){ this.name=name; this.age=age; this.color=color; } //以上为动物的属性 void eat(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在吃饭"); } void drink(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在喝水"); } } 但是动物里面不是所有都会游泳,会游泳的有鱼,鸭子,狗刨,接口的作用在于某些动物拥有其他动物不具备的 功能 接口的定义看如下代码(如何新建接口,在右键class时候选择interface即可) public interface Swim { // 游泳的接口 // 游泳的行为 void swim(); } 接下来用狗 小鸡 鱼来说明 以下是狗狗的代码 public class Dog extends Animal implements Swim{ Dog(String name,int age,String color){ super(name,age,color); } void lookhome(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在看家"); } void eating(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在吃饭"); } void drink(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在喝水"); } public void swim(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在游泳"); } } 以下是小鸡的代码 public class chick extends Animal { chick(String name,int age,String color ){ super(name,age,color); } void layEggs(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在下蛋"); } void eat(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在吃饭"); } void drink(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在喝水"); } 以下是小鱼儿的代码 public class Fish extends Animal implements Swim{ Fish(String name,int age, String color){ super(name,age,color); } void eat(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在吃饭"); } void drink(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在喝水"); } public void swim(){ System.out.println("姓名"+name+"年龄"+age+"颜色"+color+ "正在游泳"); //这个里面的就是我们重写的方法 } } 根据以上代码,我们可以看到,狗狗跟鱼儿都有游泳的属性,我们新建了接口代码看到了我们又重写了一个游泳的方法