栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口

 

子类继承父类,自动拥有父类的功能,

需要扩展功能的话,需要用到接口

package com.Study.ByStd.InterFace_;

public class InterFace03 {
    public static void main(String[] args) {
        LittleMonkey littleMonkey = new LittleMonkey("大圣");
        littleMonkey.work();//这项功能来自父类
        littleMonkey.fly();//这个fly的功能来自接口(扩展功能)
    }
}
class monkey{
    private String name;

    public monkey(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String tree(){
        return "在爬树";
    }
}
class LittleMonkey extends monkey implements bird{

    public LittleMonkey(String name) {
        super(name);
    }

    public void work(){
        System.out.println(getName()+super.tree());
        System.out.println(getName()+fly());
    }

    @Override
    public String fly() {
        return "能飞";
    }
}
interface bird{
    public String fly();
}

 

  

package com.Study.ByStd.InterFace_;

public class Computer {

    //相当于主设备生成一个接口插槽,别的设备可以通过这个插槽插入这个主设备
    //括号里面就是实现了USb...这个接口的类的对象实例
    public void work(USBinterface u1) {
        u1.start();
        u1.stop();
    }
}
package com.Study.ByStd.InterFace_;

public class InterFaceo1 {
    public static void main(String[] args) {
        //创建两个设备的对象
        Camera camera = new Camera();
        Phone phone = new Phone();

        //创建一个计算机
        Computer computer = new Computer();
        computer.work(phone);//相当于把手机接入计算机
        computer.work(camera);//相当于把相机接入计算机
    }
}

  (多态参数:Computer类里面的方法的参数用的是接口类的实例,等到main里面调用这个方法的时候,传入的参数可以是实现这个接口的类的对象)

package com.Study.ByStd.InterFace_;

public class InterFacePolymorphic {
    public static void main(String[] args) {
        //多态!
        //接口的对象实例是实现接口的类
        //相当于向上转型(父类的引用指向了子类的对象)
        FF f1 = new AA();
        f1 = new BB();
    }
}
interface FF{}
class AA implements FF{}
class BB implements FF{}

(所谓的多态就是接口的实例指向实现接口的类的对象) 

package com.Study.ByStd.InterFace_;

public class InterfacePolyArr {
    public static void main(String[] args) {

        //多态数组——>数组的类型是接口类,数组的具体数值是实现接口的类的具体实例
        Usbb[] u1 = new Usbb[2];
        u1[0] = new Myphone();
        u1[1] = new Camera_();

        //遍历接口数组
        for (int i = 0; i < u1.length; i++) {
            u1[i].work();

            //如何调用Myphone 类里面的特有方法?
            //用到类型判断instansof
            if (u1[i] instanceof Myphone){
                ((Myphone) u1[i]).call();//向下转型
            }
        }
    }
}
interface Usbb{
    void work();
}
class Myphone implements Usbb{
    @Override//实现接口的方法
    public void work() {
        System.out.println("手机工作");
    }

    public void call(){
        System.out.println("打电话");
    }
}
class Camera_ implements Usbb{
    @Override
    public void work() {
        System.out.println("相机工作");
    }


}

数组多态就是数组的类型是接口的类型,但是数组的具体的值是实现接口的类的实例

接口的多态就相当于接口可以相互继承

package com.Study.ByStd.InterFace_;

//接口的多态传递(接口与接口之间也可以相互继承)
public class InterfacePolyPass {
    public static void main(String[] args) {
        F1 f1 = new ff();
        // 当F2没有继承F1接口的时候,
        // F2和ff类没有任何关系,所以F2接口的对象不能指向ff类的对象实例
        F2 f2 = new ff();

        //本来ff类实现的是F2这个接口,但是F2继承了F1这个接口,
        // 所以相当于ff类把两个接口都实现了(ff类要把这两个接口的里面的标准都实现)


    }
}
interface F1{
    void play();

}
interface F2 extends F1{
    void hhh();
}
class ff implements F2{
    @Override
    public void play() {

    }

    @Override
    public void hhh() {

    }
}

如果一个类继承了一个父类,有实现了一个接口,那么像访问父类的属性用 super. 

想访问接口的属性(接口里面的属性是public static final 的)可以 接口类名.     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号