class="p0" style="margin-top: 0pt; margin-bottom: 0pt;">接口的关键字:interface
接口的作用:作为数据类型、充当父类给子类扩展;
定义接口的语法格式:public?interface?接口名?extends?接口名,...{
//只能定义常量
Public??static?final?数据类型??常量名?=?值;
//只能定义抽象方法
public?返回值数据类型?方法名(参数类型?参数名,...);
}
注意:接口默认的访问修饰符为public、接口不能实例化对象;
定义类实现接口的语法格式是:
public?class?类名?implements?接口名,...?{
?
//类中必须要实现接口中所有的抽象方法。
}
普通类class与接口interface的区别:
?
1.class的访问修饰符可以是:public、protected、默认的、private
而接口只有默认的访问修饰符:public;
2.class可以定义属性、普通方法、构造方法,而接口中只能定义常量和抽象方法;
3.class中可以实例化对象并调用方法,而接口不能实例化对象;
4.class可以继承另一个class,但子类只能继承一个父类(单继承),一个class可以通过implements实现多个接口,多个接口名之间用逗号隔开;而一个interface可以继承多个接口,被继承的接口之间也是用逗号隔开;一个?class可以继承另一个class后再实现多个接口;
5.子类继承父类的方法可以实现也可以不实现,而class继承interface的方法一定要实现,并且在实现接口的方法时,不能缩小方法的可见性;
?
?
?
抽象类:抽象类就是介于类和接口之间的一种特殊的类。
定义抽象的关键字:abstract?class
定义抽象类的格式:public?abstract?class?抽象类名?extends?类名或者抽象类?implements?接口名,...?{
//和类一样定义属性和方法
//和接口一样定义常量和抽象方法,但是抽象方法的格式不同
public?abstract?返回值类型?方法名(参数类型?参数名,...);
?
}
代码例子:
定义一个类实现接口
?
/** * 定义一个Person接口 * */ public interface Person { // 接口中的属性默认是public static final ,只能是public static final public static final int age = 100; // 接口中的方法默认是public abstract ,只能是public abstract public abstract void eat(); Public abstract void study(); } /** * 学生类,实现Person接口 */ public class Student implements Person{ /** * 必须实现接口中所有的方法 * 在实现接口的方法时,不能减小方法的可见性 */ public void study(){ System.out.println("学生学习的方法!!"); } public void eat(){ System.out.println("学生吃饭的方法!!"); }
?
?
<!--EndFragment-->?
<!--EndFragment-->