java接口实现
1.接口关键字 interface
2.接口不能实例化
3.类与接口之间的关系是实现关系,通过 implements关键字实现
public class 类名 implements 接口名{}
4.接口的子类(实现类)
要么重写接口中所有的抽象方法
要么是抽象类
public interface Inter {
public abstract void show();
public abstract void method();
}
interface Inter2 {
public abstract void show2();
}
//实现类
class InterImpl extends Object implements Inter , Inter2{
@Override
public void show() {
}
@Override
public void method() {
}
@Override
public void show2() {
}
}
接口中成员组成
1.成员变量:都是常量,默认修饰符 public static final
2.构造方法:没有
3.成员方法:
JDK8版本前:都是抽象方法 默认修饰符 public abstract
JDK8版本:增加了 默认方法 和 静态方法
JDK9版本:增加了 私有的方法
public class Demo2 {
public static void main(String[] args) {
System.out.println(InterA.num);
}
}
interface InterA{
public static final int num = 10;
public abstract void show();
}
默认方法
允许在接口中定义非抽象方法,但是需要使用关键字default修饰,这些就是默认方法
作用:解决接口的省级问题
格式:
public default 返回值类型 方法名(参数){...}
public default void show(){...}
注意事项:
1.默认方法不是抽象方法,所以不强制被重写,但是可以被重写,重写的时候去掉default关键字
2.public可以省略,default 不能省略
3.如果实现了多个接口,多个接口中存在相同的方法声明
子类就必须对该方法进行重写
public class Demo {
public static void main(String[] args) {
InterImpl1 interImpl1 = new InterImpl1();
interImpl1.method();
}
}
interface InterA{
public abstract void show();
public default void method(){
System.out.println("InterA中的默认接口方法...");
}
}
interface InterB{
public abstract void show();
public default void method(){
System.out.println("InterB中的默认接口方法...");
}
}
class InterImpl1 implements InterA{
@Override
public void show() {
}
}
class InterImpl2 implements InterA,InterB{
@Override
public void show() {
}
@Override
public void method() {
System.out.println("实现类必须重写相同的方法!");
}
}
静态方法
格式:public static 返回值类型 方法名(参数){...}
作用:方便使用。
注意事项:
1.public可以省略,但是static不可以省略。
2.调用方式只有一种,只能通过接口名字进行调用
public class Demo {
public static void main(String[] args) {
InterAImpl interA = new InterAImpl();
InterA.show();
}
}
interface InterA{
public static void show(){
System.out.println("接口的方法是静态的......");
}
}
class InterAImpl implements InterA{
}
私有接口(保证自己的JDK版本大于等于9版本)
方法1
interface Inter{
public static void start(){
System.out.println("start方法执行...");
log();
}
public static void end(){
System.out.println("end方法执行...");
log();
}
private static void log(){
System.out.println("日志记录");
}
}
方法2
interface Inter1{
public default void start(){
System.out.println("start方法执行...");
log();
}
public default void end(){
System.out.println("end方法执行...");
log();
}
private void log(){
System.out.println("日志记录");
}
}
类和接口的关系
· 类和类的关系
继承关系,只能但继承,但是可以多层继承
类和接口的关系
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
接口和接口的关系
继承关系,可以多继承,也可以单继承。
抽象类与接口之间的区别
1.相同点
抽象类与接口都是作为父类型,都不可以创建对象。
2.不同点文章来源:https://www.toymoban.com/news/detail-616819.html
成员的区别
成员变量
抽象类:可以是常量,也可以是变量。
接口:只能是常量,默认修饰符 public static final
成员方法
抽象类:可以是抽象类,也可以是非抽象方法
接口:
JDK8之前:只能是抽象方法,默认修饰符 public abstract
JDK8版本:增加了默认方法 和 静态方法
JDK9版本:增加了私有方法
构造方法
抽象类:有
接口:没有
设计理念
抽象类可以存放事物的共性内容
接口中可以存放事物地规则和事物地扩展。
学的不是技术,更是梦想!!!文章来源地址https://www.toymoban.com/news/detail-616819.html
到了这里,关于java接口实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!