java 一个类implements多个interface

目录

1.不同接口里面的重名的方法应该怎么处理?

2.不同接口的方法怎么访问。


最近在看接口这一块的时候,我发现一个问题,java已经规定了一个class可以implements多个接口,那么我提出以下几个问题。

1.不同接口里面的重名的方法应该怎么处理?

先看一个例子:

public interface InterfaceA {
    void method();
    void methodA();
}
public interface InterfaceB {
    void method();
    void methodB();
}
public class Subject implements InterfaceA, InterfaceB {

    @Override
    public void method() {

    }

    @Override
    public void methodB() {

    }

    @Override
    public void methodA() {

    }
}

那么问题来了,上例中method到底是哪个接口的方法?答案是它是两个接口的参数。如果你用InterfaceA去接收实例化的Subject对象的时候,它访问到的就是InterfaceA的method方法,对于InterfaceB同样的道理。如果用Subject去接收的时候,它默认的是InterfaceA的方法。

2.不同接口的方法怎么访问。

如下例所示:

interface Person
{
     void run();
     String getName();
}
interface Hello
{
    void hello();
}
class Student implements Person,Hello
{
    private String name;
    public Student(String name)
    {
        this.name = name;
    }
    @Override
    public void run()
    {
        System.out.println(this.name+"run");
    }
    @Override
    public String getName()
    {
        return this.name;
    }
    @Override
    public void hello()
    {
        System.out.println("hello "+this.name);
    }
}

public class Test {
    public static void main(String args[]){
//能访问到所有接口的方法
        Student p = new Student("***  ");
        p.run();
        p.hello();
//   p1只能访问到接口Person里面的方法
        Person p1 = new Student("***  ");
//p2只能访问到接口Hello里面的参数
        Hello p2 = ew Student("***  ");
        
    }
}

接收实例化的类型不同,能访问到的方法也是不同的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值