首先,我们可以创建一个父类NetworkOperator,表示网络运营商,其中包含网络类型和安装宽带、安装有线电视的方法。

public abstract class NetworkOperator {
    protected String type;

    public NetworkOperator(String type) {
        this.type = type;
    }

    public abstract void installBroadband();
    public abstract void installCableTV();
}

然后,我们可以创建三个子类ChinaTelecom、ChinaMobile和ChinaUnicom来表示具体的网络运营商,它们继承自NetworkOperator,并实现父类中的抽象方法。

public class ChinaTelecom extends NetworkOperator {
    public ChinaTelecom() {
        super("LTE");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国电信正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国电信正在安装有线电视");
    }
}

public class ChinaMobile extends NetworkOperator implements IChat {
    public ChinaMobile() {
        super("TD-LTE");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国移动正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国移动正在安装有线电视");
    }

    @Override
    public void chat() {
        System.out.println("中国移动正在使用飞信聊天");
    }
}

public class ChinaUnicom extends NetworkOperator {
    public ChinaUnicom() {
        super("WCDMA");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国联通正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国联通正在安装有线电视");
    }
}

接下来,我们创建两个接口IInternet和ICall,分别表示上网和打电话的功能。

public interface IInternet {
    void internet();
}

public interface ICall {
    void call();
}

然后,我们可以让ChinaTelecom、ChinaMobile和ChinaUnicom分别实现这两个接口。

public class ChinaTelecom extends NetworkOperator implements IInternet, ICall {
    public ChinaTelecom() {
        super("LTE");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国电信正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国电信正在安装有线电视");
    }

    @Override
    public void internet() {
        System.out.println("中国电信正在上网");
    }

    @Override
    public void call() {
        System.out.println("中国电信正在打电话");
    }
}

public class ChinaMobile extends NetworkOperator implements IInternet, ICall, IChat {
    public ChinaMobile() {
        super("TD-LTE");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国移动正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国移动正在安装有线电视");
    }

    @Override
    public void internet() {
        System.out.println("中国移动正在上网");
    }

    @Override
    public void call() {
        System.out.println("中国移动正在打电话");
    }

    @Override
    public void chat() {
        System.out.println("中国移动正在使用飞信聊天");
    }
}

public class ChinaUnicom extends NetworkOperator implements IInternet, ICall {
    public ChinaUnicom() {
        super("WCDMA");
    }

    @Override
    public void installBroadband() {
        System.out.println("中国联通正在安装宽带");
    }

    @Override
    public void installCableTV() {
        System.out.println("中国联通正在安装有线电视");
    }

    @Override
    public void internet() {
        System.out.println("中国联通正在上网");
    }

    @Override
    public void call() {
        System.out.println("中国联通正在打电话");
    }
}

现在,我们可以创建对象并调用方法来模拟各网络运营商的关系和功能。

public class Main {
    public static void main(String[] args) {
        NetworkOperator telecom = new ChinaTelecom();
        telecom.installBroadband();
        telecom.installCableTV();
        ((IInternet) telecom).internet();
        ((ICall) telecom).call();

        NetworkOperator mobile = new ChinaMobile();
        mobile.installBroadband();
        mobile.installCableTV();
        ((IInternet) mobile).internet();
        ((ICall) mobile).call();
        ((IChat) mobile).chat();

        NetworkOperator unicom = new ChinaUnicom();
        unicom.installBroadband();
        unicom.installCableTV();
        ((IInternet) unicom).internet();
        ((ICall) unicom).call();
    }
}

输出结果:

中国电信正在安装宽带
中国电信正在安装有线电视
中国电信正在上网
中国电信正在打电话
中国移动正在安装宽带
中国移动正在安装有线电视
中国移动正在上网
中国移动正在打电话
中国移动正在使用飞信聊天
中国联通正在安装宽带
中国联通正在安装有线电视
中国联通正在上网
中国联通正在打电话

通过继承和接口的使用,我们成功模拟了中国电信、中国移动和中国联通这三个网络运营商的关系和功能

现有中国电信ChinaTelecom中国移动ChinaMobile中国联通ChinaUnicom 他们都属于网络运营商NetworkOperator		都有各自的网络类型type比如:		中国电信的网络类型为LTE中国移动的网络类型为TD-LTE中国联通的网络类型为WCDMA		网络运营商都有安装宽带installBroadband和安装有线电视installCableTV的行为		网络运

原文地址: https://www.cveoy.top/t/topic/h5RW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录