为了账号安全,请及时绑定邮箱和手机立即绑定

从另一个类调用另一个类中存在的类方法

从另一个类调用另一个类中存在的类方法

天涯尽头无女友 2021-04-13 17:13:27
在名为Sport的源文件中创建以下3个类:a)使用一个将打印游戏名称的方法(即getSportName())创建两个非公共类Hockey和Football类。b)再创建一个类SportTest。在此类的主要方法中,创建“曲棍球”和“足球”的对象,并在方法的帮助下打印相应游戏的名称。
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

您可以在SportTest构造函数中获取Sport类,因此您可以访问Sport类以及Football and Hockey类:


public class Sport(){

    public Football football;

    public Hockey hockey;

    public Sport(){

        football = new Football();

        hockey = new Hockey();

    }

}


public class Football{

    String getName(){return "Football";}

}

public class Hockey{

    String getName(){return "Hockey";}

}


public class SportTest{

    public SportTest(Sport sport){

        sport.football.getName(); // "Football"

        sport.hockey.getName;     // "Hockey"

    }

}

或者,而不是在体育课上举行足球和曲棍球比赛。您可以将Sport设置为界面,并在Football和Hockey类中实现Sport:


public interface Sport(){

    String getName();

}


public class Football implements Sport{

    @Override

    String getName(){return "Football";}

}

public class Hockey implements Sport{

    @Override

    String getName(){return "Hockey";}

}


public class SportTest{

    public SportTest(Sport sport){

        sport.getName();

    }

}


SportTest footballTest = new SportTest(new Football()); // "Football"

SportTest hockeyTest = new HockeyTest(new Hockey()); // "Hockey"


查看完整回答
反对 回复 2021-04-28
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您需要对extend一个类和implement另一个类进行多重继承,这样才能访问方法。


例如。以下是进行多重继承的伪代码:


class A{

    public:

    void method1();

}

interface B{

    public:

    abstract void method2();

}


class C extends A implements B{}


C c = new C();

c.method1();

c.method2();


查看完整回答
反对 回复 2021-04-28
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信