接口就是一种公共的规范标准。只要符合规范标准,都可以使用。
A、B、C extends D
,A和B有一个共同的行为e,但C没有行为e,如果在A和B里分别定义行为e将无法限制定义的规则(方法名,参数),采用多态调用行为e时不方便。此时就可以将行为e定义为一个接口。接口是一种规则,体现在对行为的抽象
关键字:interface
public interface 接口名 {...}
2 接口的特点
2.1 类实现接口接口和类是实现关系,可以单实现,也可以多实现。
关键字:implements
public class 类名 implements 接口名1, 接口名2, ... {}
2.2 接口实例化接口不能直接实例化
如何实例化?
接口名 变量 = new 实现类名();
// 前提是:类已经实现接口
2.3 接口的实现类想要成为接口的实现类:
要么重写接口的所有抽象方法
要么本身也是个抽象类
只能是常量
因为有默认修饰符public static final
//公共的静态的最终的
public interface Inter {//在接口里定义成员变量时
int num = 10;
//java会给加上默认修饰符public static final,如下
public static final int num = 10;
}
3.2 构造方法接口没有构造方法
只能是抽象方法
因为有默认修饰符public abstract
//公共的抽象的
public interface Inter {//在接口里定义成员方法时
void show();
//java会给加上默认修饰符public abstract,如下
public abstract void show();
}
4 类继承和实现后创建对象的区别public abstract class Animal {public abstract void eat();
}
interface Jumpping {public abstract void jump();
}
//Cat类继承了Animal类,并实现了Jummping接口
class Cat extends Animal implements Jumpping {public abstract void eat() {System.out.println("猫吃鱼");
}
public abstract void jump() {System.out.println("猫跳的高");
}
}
4.1 用父类创建对象只能使用父类中的方法
Animal a = new Cat();
a.jump(); //报错,jump方法是接口中的
4.2 用接口创建对象只能使用接口中的方法
Jumpping j = new Cat();
j.eat(); //报错,eat方法是Animal中的
4.3 用具体类创建对象可以同时使用父类和接口中的方法
Cat c = new Cat();
c.jump();
c.eat();
5 类和接口之间的关系关系 | 关系说明 | |
---|---|---|
类和类 | 继承 | 只能单继承,不能多继承,但是可以多层继承 |
类和接口 | 实现 | 可以单实现、多实现,也可以继承一个类的同时实现多个接口 |
接口和接口 | 继承 | 可以单继承,也可以多继承 |
其他说明:
JDK8以后接口中新增的方法,
作用: 解决接口升级后不兼容的问题
关键字:default
public default 返回值类型 方法名(参数) {...}
注意:
JDK8以后接口中新增的方法
关键字:static
public static 返回值类型 方法名(参数) {...}
注意:
JDK9以后接口中新增的方法
作用: 将只为接口服务的方法设置为私有,不让外类访问
为默认方法服务的私有方法:
private 返回值类型 方法名(参数) {...}
为静态方法服务的私有方法:
private static 返回值类型 方法名(参数) {...}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:第18讲接口-创新互联
本文网址:https://www.cdcxhl.com/article38/jgspp.html
成都网站建设公司_创新互联,为您提供网站策划、商城网站、网站内链、面包屑导航、ChatGPT、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联