关于Java中的接口
在Java中,接口是什么意思?
*特殊的原因*
– 完全不定义内部实现(方法的处理操作)
→ 被认为是允许多重继承的原因是同一层级的父级方法之间不会发生冲突。
特征
①所有的方法必须是抽象方法。
②接口基本上不具有字段。
③如果在接口内部声明字段,则会自动添加「public static final」,相当于声明常量。
④多重继承是允许的。
⑤通过使用默认实现,可以实现抽象方法(Java8及以上版本)。但基本上不建议这样做,因为可能会产生实现上的冲突。
⑥在接口中声明的方法会自动成为「public abstract」。可以省略「public abstract」的声明。
※摘要(abstract)= 表示这个类(方法)是一个抽象类(方法)
追溯正确的继承树而发生的现象
抽象方法开始出现
→ 只剩下抽象方法
→ 开始减少抽象方法
→ 只剩下抽象方法 = 接口
接口就像是洗衣店的菜单。
没有明确告知用户如何清洗。
接口声明
public interface インターフェース名 {
//anycode
}
关于接口的实现
在接口中定义的方法都是抽象方法,因此需要分别进行重写。
需要实现具体的处理内容。
※重写:在子类中覆盖父类的成员
接口的实现
public class クラス名 implements インターフェース名 {
//anycode
}
实施 = 実施
接口的效果
可以强制具有相同接口实现的多个子类共享一组方法的实现。
可以将接口定义的方法在多个类中共享。
通过接口来实现多重继承
public class クラス名 implements 親インターフェースA , 親インターフェースB {
//anycode
}
接口的继承
生物本体
public interface Creature {
public abstract void run();
}
继承了上述的Creature接口的Human接口。
public interface Human exetends Creature {
void walk();
void eat();
//さらに、親インターフェースからrun()を継承する
总结
抽象类
对于无法确定具体内容的模糊方法,应该加上”abstract”,使其成为抽象方法。
包含至少一个抽象方法的类,必须加上”abstract”,成为抽象类。
抽象类无法实例化。
利用抽象类和抽象方法作为”继承的材料”,开发父类,就不用担心非正常实例化或忘记覆写了。
界面
・只包含抽象方法并且属于抽象类的称为”接口”,可进行定义。
・接口允许多重继承。
・子类定义需要实现接口时,使用关键字”implements”。