接口(对抽象的抽象)

接口(interface)的作用:
1.约束
2.定义一些方法,让不同的人实现
3.接口中的方法默认有 public abstract (公共抽象的)修饰
4.接口中的常量修饰有 public static final(公共静态常量)修饰
5.接口不能被直接实例化!!!!,因为接口不是class(类),里面也没有构造方法,所以不能new
6.接口可以实现(implements)多个接口(伪多继承)
7.如果在实现类中(类名 = 接口名+Impl),必须重写接口中的所有方法

8.JDK8之后的接口中可以写普通方法,用default修饰---

default void min(){};
//接口一
public interface UserService {
    //接口中定义一个成员属性
    public static final int NUM = 10;

    /*
    这里的class地方用interface替换,interface就是接口的意思
    注意图标也产生了变化
    接口中只能写抽象方法,而且都是 public abstract 修饰的
     */
    public abstract void run();//public abstract变灰是因为在接口中默认去书写的
    //void eat(){} ,报错因为带大括号的不是abstract抽象修饰的抽象方法

    void add(String name);  //增
    void delete(String name);  //删
    void update(String name);  //改
    void query(String name);  //查
}
//接口二
public interface TimeService {
    void timer();
}
/*
    1.接口一般需要有个实现类
    2.实现类的书写规则是接口名加 impl结尾
    3.注意后续要 implements(实现) + 接口
    由于接口里面的方法都为abstract修饰的抽象方法,所以这里要重写接口中的所有抽象方法
     */
//extends只能单继承,而interface可以多实现(伪多继承),但是需要重写所有抽象方法
public class UserServiceImpl implements UserService,TimeService{

    //看看可以输出接口中的变量吗
    public void getNum(){
        System.out.println(NUM);
    }


    @Override
    public void run() {

    }

    @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() {

    }
}
//创建主方法去测试
class Test{
    public static void main(String[] args) {
        
        //1.static修饰的变量可以被类名.调用
        System.out.println(UserServiceImpl.NUM);
        //也可以直接用接口点变量名输出
        System.out.println(UserService.NUM);

        //2.通过new对象点调用改方法
        UserServiceImpl u = new UserServiceImpl();
        u.getNum();
        //但是这里不可以实例化接口
        UserService userService = new UserService();
        //会报错!!!!
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值