Java基础——多态(接口)

多态(接口)


在java中继承是单继承关系,若想拥有更多父类,考虑使用接口进行实现

用法:使用interface来修饰
接口可以包含多个方法,并且方法均为抽象方法,且不可实现,其抽象方法的实现必须在子类中引入接口进行实现

特征

  1. 接口中的所有方法都是抽象方法,不可实现
  2. 接口中所有方法和变量的访问修饰权限是public,而不是default
  3. 接口不能被实例化,必须由子类实现后通过子类实例化
  4. 接口的子类必须实现接口中的所有方法(毕竟只包含抽象方法),,,不同于抽象类(抽象类有抽象方法也有普通方法,,其中子类只需要实现抽象方法) 抽象方法都必须在子类中进行实现
  5. 子类可以拥有多个接口
  6. 接口中的变量都是静态常量,,在接口中的变量前面都默认拥有 public static final 关键字
  7. 可以定义抽象类实现接口中的部分方法,而子类则需要将抽象方法全部实现

接口VS抽象类

  • 接口中全为抽象方法,让规范具体实现很好的分离,降低耦合性
  • 接口是规范,表示一种能力,“如果你是…则必须…”(如果你是飞机,就必须能飞)

CPU(接口):

package abd.ProgInterface;

public interface CPU {
    String brand();
    int Hz();
}

HighDisk(接口):

package abd.ProgInterface;

public interface HighDisk {
    String capacity();
}

CPU接口实现:

package abd.ProgInterface;

public class IntelCPU implements CPU {
    
    @Override
    public String brand() {
        return "Intel";
    }

    @Override
    public int Hz() {
        return 3;
    }
}
package abd.ProgInterface;

public class LongxinCPU implements CPU {
    @Override
    public String brand() {
        return "鲲鹏";
    }

    @Override
    public int Hz() {
        return 5;
    }
}

HighDisk接口实现:

package abd.ProgInterface;

public class HhighDisk implements HighDisk {
    @Override
    public String capacity() {
        return "500000GB";
    }
}

package abd.ProgInterface;

public class LowDisk implements HighDisk {
    @Override
    public String capacity() {
        return "20000GB";
    }
}

Computer类(逻辑实现模块):

package abd.ProgInterface;

public class Computer {

    public Computer(CPU cpu,HighDisk disk){
        System.out.println("品牌:"+cpu.brand()+"     主频:"+cpu.Hz()+"GHz");
        System.out.println("硬盘容量:"+disk.capacity());
    }
}

测试:

package abd.ProgInterface;

public class Test {

    public static void main(String[] args) {
        
        //接口的多态实现,接口不能直接实例化,必须有相应的子类进行实现操作,通过子类进行实例化相应接口
        //CPU cpu = new LongxinCPU();
        CPU cpu = new IntelCPU();
        HighDisk disk = new LowDisk();

        Computer computer = new Computer(cpu,disk);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值