- 普通类:只有具体实现
- 抽象类:具体实现和抽象方法都有
- 接口:只有抽象方法! 自己无法写方法,专业的约束。约束和实现分离,面向接口编程。
接口的本质是契约(遵循要求来实现方法功能)
接口关键字interface
接口的定义
package com.xzc.oop.接口;
//关键字interface
public interface Interface {//定义一个接口(接口不是类)
//接口中的所有定义其实都是抽象的而且都是public
public abstract void run();//正常来说接口中的抽象方法应该写成这种形式
void walk();//但接口中已经默认成public abstract ......,所以可以直接写(返回类型 + 方法名)即可
}
接口中也可以有具体的方法,并且也可以实现(具体的方法不能再载入实现类了)
package com.xzc.oop.接口;
//关键字interface
public interface Interface {//定义一个接口(接口不是类)
//接口中的所有定义其实都是抽象的而且都是public
public abstract void run();//正常来说接口中的抽象方法应该写成这种形式
void walk();//但接口中已经默认成public abstract ......,所以可以直接写(返回类型 + 方法名)即可
public static void xz(){
System.out.println("xzc");
}
}
class per {
public static void main(String[] args) {
Interface.xz();//xzc
}
}
接口都需要有实现类(实现也就是重写)
package com.xzc.oop.接口;
//实现类关键字 implements 一个类可以实现接口 用implements
public class UserServiceImpl implements Interface{
@Override
public void run() {
}
@Override
public void walk() {
}
}
接口可以实现多继承
package com.xzc.oop.接口;
//实现类关键字 implements 一个类可以实现接口 用implements
public class UserServiceImpl implements Interface, Time{
@Override
public void run() {
}
@Override
public void walk() {
}
@Override
public void time() {
}
}