【Java 入门 Day13】 接口篇(上):什么是接口?Java 里的 “万能合同”!
·
家人们谁懂啊!Java 里的接口简直是新手的 “重灾区”,每次写代码碰到interface,都像在看一份看不懂的合同,生怕一不小心就违约报错。今天咱们就用唠嗑的方式,把接口扒得明明白白,看完保证你再也不被它搞心态!
一、接口到底是个啥?Java 里的 “万能合同”
接口,说白了就是一份大家都要遵守的合同 / 标准!
- 举个栗子:就像手机充电线的接口,Type-C 就是一份 “合同”,所有手机厂商、充电宝厂商都得按这个标准来做,不然就插不上。
- 放在 Java 里,接口就是定义了一套 “规矩”:比如我定义一个 “会飞” 的接口,里面有个
fly()方法,不管是鸟、飞机还是超人,只要实现了这个接口,就必须遵守 “会飞” 的规矩,实现fly()方法。
1. 接口的语法:用interface定义的 “合同模板”
接口的语法很简单,就用interface关键字:
java运行
interface MyInter {
// 接口里的属性,默认是public static final的常量
int n = 3;
// 接口里的方法,默认是public abstract的抽象方法
void m1();
int m2();
}
- 编译后,接口也会生成独立的
.class文件,看着和普通类差不多,但它不能创建对象,只能声明引用(就像合同本身不能干活,得找个 “实现类” 来执行)。 - 接口里的属性,默认都是
public static final的常量!也就是说,你写int n = 3;,编译器会自动给你加上public static final,变成public static final int n = 3;,赋值之后就再也改不了,是个常量。 - 接口里的方法,默认都是
public abstract的抽象方法!你写void m1();,编译器会自动加上public abstract,变成public abstract void m1();,没有方法体,只有声明。 - 接口里没有构造方法!它不是类,不能 new 对象,自然也不需要构造方法。
二、实现类:接口的 “打工人”,必须遵守合同
接口只是一份 “合同”,本身不能干活,得找个 “打工人” 来实现它,这个 “打工人” 就是实现类。
1. 实现接口的语法:用implements接下这份合同
实现类要实现接口,用implements关键字:
java运行
class MyClass implements MyInter {
// 必须实现接口里所有的抽象方法,而且访问权限必须是public
public void m1() {
System.out.println("m1的方法...");
}
public int m2() {
System.out.println("m2的方法...");
return 0;
}
}
- 划重点!如果实现类不想变成抽象类,就必须实现接口里所有的抽象方法,一个都不能少!不然编译器会直接给你红波浪线,说你 “违约了”。
- 实现接口方法时,访问权限必须是
public!因为接口里的方法默认是public abstract的,子类实现的时候不能缩小访问权限,就像合同里写了 “所有人都能调用的方法”,你不能改成 “只有我自己能调用”。
2. 接口的核心用法:强制多态!
接口的灵魂就是多态!咱们可以用接口类型的引用,指向实现类的对象,就像这样:
java运行
public class TestInter2 {
public static void main(String[] args) {
// 接口类型的引用,指向实现类的对象,这就是多态
MyInter mi = new MyClass();
mi.m1(); // 调用实现类里的m1方法
int n = mi.m2(); // 调用实现类里的m2方法
System.out.println(n);
}
}
- 你看,
mi是MyInter类型的引用,但它指向的是MyClass的对象,调用方法的时候,会自动执行MyClass里实现的方法,这就是多态的魅力!
今天先唠到这,接口的基础概念和实现方式你 get 到了吗?下一篇咱们继续扒接口的继承、多实现和实际应用,保证让你彻底拿捏这个 Java 里的 “万能合同”!
更多推荐

所有评论(0)