JAVA 接口的理解

1、接口:是抽象方法的集合。可以理解为对抽象类的一种改造,实现其他语言(如C++的)多继承问题

  1. 一个类可实现多个接口
  2. 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
  3. 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
  4. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  5. 接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
  6. 如果没有实现接口中的所有方法,则子类仍然是抽象类

2、学习的代码

1、接口1

package com.learn.abstruct;

public interface LearnInterface {
    //方法:隐式为抽象方法
    public void walk ();
    public void eat();
    public void sleep();
}

2、接口2

   package com.learn.abstruct;

public interface LearnInterfaceSec {
    public void salary();
    public void work();
}


3、实现一

package com.learn.abstruct;

public  class  Students implements LearnInterface ,LearnInterfaceSec {
    @Override
    public void walk() {
        System.out.println("走道");
    }

    @Override
    public void eat() {
        System.out.println("食堂吃饭");
    }

    @Override
    public void sleep() {
        System.out.println("学生宿舍");

    }
    @Override
    public void salary() {
        System.out.println("-1000");
    }

    @Override
    public void work() {
        System.out.println("学习哦");
    }
}

4、实现二

package com.learn.abstruct;

public class Teachers implements LearnInterface,LearnInterfaceSec {
    @Override
    public void walk() {
        System.out.println("讲台上走");
    }

    @Override
    public void eat() {
        System.out.println("在家吃饭");
    }

    @Override
    public void sleep() {
        System.out.println("职工宿舍睡觉");
    }

    @Override
    public void salary() {
        System.out.println("1000");
    }

    @Override
    public void work() {
        System.out.println("科研、上课哦");

    }
}

5、测试

package com.learn.test;
/**
 * 测试
 */

import com.learn.abstruct.Students;
import com.learn.abstruct.Teachers;
import org.junit.Test;
public class LearnAbstructTest {
    @Test
    public void testInt(){
        Students students = new Students();
        Teachers teachers = new Teachers();
        students.eat();
        students.walk();
        students.sleep();
        students.salary();
        students.work();

        System.out.println("======================");
        teachers.eat();
        teachers.walk();
        teachers.sleep();
        teachers.salary();
        teachers.work();
    }
}

6、结果

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值