接口
接口就是一种规范,实现接口就是实现接口中的规定的抽象方法
1.定义接口的语法格式:public interface 接口名称{内容}
//注意:接口类这里是没有()的
public interface USB {
}
2.接口不能定义构造方法,可以放静态常量(默认修饰符就是public static final 数据类型 变量名 = 值)
3.不能定义普通方法,但是可以定义抽象方法,方法的默认修饰符是:public abstract 返回值 方法名();
注意
静态常量的定义,字母全部用大写。
public interface USB {
//这是复杂的写法
public static final String NAME= "yang";
//这是复杂的抽象方法的写法
public abstract void method() ;
}
public interface USB {
//这是简写的写法
String NAME = "yang";
//这是简化的抽象方法的写法
public void method();
}
4.使用implements关键字实现接口,实现接口的同时必须实现接口中的抽象方法
/*
这是一个名为USB的接口类
*/
public interface USB {
//这是我接口里面的第一个方法
public void method();
//这是我接口里面的第二个方法
public void method1();
}
注意
继承接口的类,必须要继承其中的抽象方法,否则直接报错
/*
这是我为了继承接口类,而创建的一个类名为Upan的子类
*/
public class Upan implements USB {
//这是继承下来的第一个方法
public void method() {
System.out.println("U盘传入数据");
}
//这是继承下来的第二个方法
public void method1() {
System.out.println("U盘读取数据");
}
}
/*
这是一个类名为Test的测试类
*/
public class Test {
public static void main(String[] args) {
USB usb = new Upan();//使用多态的方式使用接口
//调用第一个方法
usb.method(); //输出结果为:(U盘传入数据)
//调用第二个方法
usb.method1();//输出结果为:(U盘读取数据)
}
}
5.在创建对象的时候,将接口当做父类来处理,使用多态的方式创建对象
6.Java中支持多个接口,既Java中可以继承多个接口,语法格式实例:public class Upan implements USB,Page{};
一个友情提示
接口和静态的方法和属性的修饰符,最好全部用public,以免后面继承的时候因为私有性的问题而报错。
/*
创建一个类名为Page的第二个接口类
*/
public interface Page {
public void print();
}
public class Upan implements USB,Page {
//这是继承下来的第一个方法
public void method() {
System.out.println("U盘传入数据");
}
//这是继承下来的第二个方法
public void method1() {
System.out.println("U盘读取数据");
}
//这是继承了新创建Page类里面的方法
public void print() {
System.out.println("这是Page的方法");
}
}
public class Test {
public static void main(String[] args) {
USB usb = new Upan();//使用多态的方式使用接口
//调用第一个方法
usb.method(); //输出结果为:(U盘传入数据)
//调用第二个方法
usb.method1();//输出结果为:(U盘读取数据)
//向下转型,调用子类独有的方法。(这个我在多态的哪篇博客里面有讲到)
Upan upan = (Upan)usb;
upan.print();//输出结果为:(这是Page的方法)
}
}
6.一个接口可以继承多个其他的接口
/*
这是我为了继承多个接口而创建的Total接口
*/
public interface Total extends USB,Page {
//定义一个add方法
public void add();
}
/*
同样我创建一个Other的普通类,当我让他继承Total的时候他会把包括Total在内的三个接口里面的方法全部调出来
*/
public class Other implements Total{
//这是USB接口生成的第一个方法
public void method() {
}
//这是USB接口生成的第二个方法
public void method1() {
}
//这是Page生成的方法
public void print() {
}
//这是Total生成的方法
public void add() {
}
}
7.抽象类可以继承另一个抽象类的同时,也可以继承多个接口
/*
创建了一个类名为A的抽象类
*/
public abstract class A {
//
public abstract void A();
}
/*
创建一个类名为B的抽象类
*/
public abstract class B extends A implements USB,Page,Total {
public abstract void B();
}
/*
最后创建一个普通类,类名为C,如何成为B类的子类。这样就可以调用所有类的方法。
*/
public class C extends B{
//这是USB接口生成的第一个方法
public void method() {
}
//这是USB接口生成的第二个方法
public void method1() {
}
//这是Page生成的方法
public void print() {
}
//这是Total生成的方法
public void add() {
}
//这是B生成的方法
public void B() {
}
//这是A生成的方法
public void A() {
}
}