Java接口的定义与实现

大家好,今天来分享一下Java接口与实现

普通类:只有具体实现
抽象类:具体的实现和规范(抽象方法都有)
接口: 只有规范,自己是无法写方法的,它属于专业的专业的约束
约束和实现分离:面向接口编程
接口就是规范,定义的是一组规则,它体现了在现实世界“如果你是…就必须做…” 的思想

接口的本质是契约,就像班级的规章制度一样,制定好了之后,所有学生必须遵守

接口也是面向对象的精髓,是对于对象的抽象,最可以体现这一点的,就是接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

声明类的关键字是class,声明接口的关键字interface

这是java 接口的语法格式

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

上源码
创建UserService 类

package Demo11;

public class UserService {  //这是普通类
}

普通类的图标是这样的(在IDEA当中)
在这里插入图片描述

这是抽象类的图标
在这里插入图片描述

仔细看,他俩是不一样的

接口是这样写的

package Demo11;
//interface   :     接口

public interface UserService {
}
package Demo11;

public interface UserService {
    public  void  run(){     //接口里面是无法方法实现
    //这一行会报错





        
    }
}
可以这样写
package Demo11;
//interface :接口关键字

public interface UserService {
    //接口中的所有定义都是抽象的public abstract
 public abstract    void  run();     //第一种
 //void run();     这两种写法都是对的    第二种
 }

这里我们主要是定义了四个方法

package Demo11;
//interface :接口关键字    ,接口都是要有实现类


public interface UserService {
    //接口中的所有定义都是抽象的public abstract
 public abstract    void  add(String name);//第一种 (增加)    public abstract 可以不写
                    void  delete(String name);  //(删除)
                    void  update(String name);    //改
                    void  query(String name);
                    //定义四个方法
 //void run();     这两种写法都是对的    第二种


}

创建UserServiceImpl类 ,作为上面方法的实例类

package Demo11;
//抽象类   :
//类  :可以实现接口     implements  接口
public class UserServiceImpl  implements UserService {     //这样直接写会报错}

这是错误的截图

在这里插入图片描述

package Demo11;
//抽象类   :
//类  :可以实现接口     implements  接口
public class UserServiceImpl  implements UserService {
//我们要对方法进行重写,重写才可以正常
//实现了接口的实例类,就要重写接口当中的方法

    @Override
    public void add(String name) {
        
    }

    @Override
    public void delete(String name) {
        
    }

    @Override
    public void update(String name) {
        
    }

    @Override
    public void query(String name) {
        
    }
}

我们在这里再定义一个接口

package Demo11;

public interface TimeService {
    void timer();  
}

我们使用刚才的实例类代码块来做

这里会报错的

package Demo11;
//抽象类   :
//类  :可以实现接口     implements  接口
public class UserServiceImpl  implements UserService,TimeService {
    @Override
    public void add(String name) {

    }

    @Override
    public void delete(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }
}

这是报错的截图

在这里插入图片描述

现在,我们在接口中,重写一下方法

package Demo11;
//抽象类   :
//类  :可以实现接口     implements  接口
public class UserServiceImpl  implements UserService,TimeService {
    @Override
    public void add(String name) {     //重写方法

    }

    @Override 
    public void delete(String name) {     //重写方法

    }

    @Override
    public void update(String name) {     //重写方法

    }

    @Override
    public void query(String name) {      //重写方法

    }

    @Override
    public void timer() {     //重写方法
        
    }
}

以上这个是正确的代码

关于接口的总结

1.接口弥补了Java单继承的局限
2. 接口本质上就是约束
3. 定义一下方法, 可以让不同的人实现
4. public static final //这个不常用
5. public abstract //抽象化
6. 接口不可以被实例化,接口当中没有构造方法,因为接口不是类
7. implements 可以实现多个接口
8. 必须要重写接口当中的方法

好了,关于 Java接口的定义和实现就讲到这里了,谢谢大家

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值