永发信息网

C# 关于public class的疑惑

答案:6  悬赏:40  手机版
解决时间 2021-08-21 15:07
  • 提问者网友:抽煙菂渘情少年
  • 2021-08-21 01:04

 public class Fruit
    {
        public void frr()
        {
            Console.WriteLine("水果");
        }
    }
    class Apple
    {
        public void app()
        {
            frr();
            Console.WriteLine("苹果");
        }
    }

在同一命名空间下,Fruit类是public类型,为何Apple类不能使用Fruit类的frr方法??

 

最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-08-21 01:52

有两种方法可以调用frr()方法:


方法1:


a. 修改Fruit类,把Fruit类中的frr()方法 定义为静态方法 public static void frr(){......}


b. 在Apple 类中应该这样调用 Fruit.frr();


方法2:


a. 修改Apple类,先实例化一个Fruit对象,Fruit a=new Fruit();


b. 调用的代码修改为 a.frr();

全部回答
  • 1楼网友:廢物販賣機
  • 2021-08-21 07:01

因为这是属于两个类,所以类与类之间调用,必须实例化,或者是一个类的方法是static静态的

两个类的映射不同,这也反应了C#的面向对象

方法1:

a. ,把Fruit类中的frr()方法 定为静态方法 public static void frr(){方法代码}

b. 在Apple 类中应该这样调用 Fruit.frr();

方法2:

a. 在APPLE类中,实例化一个Fruit对象,Fruit f=new Fruit();

b. 调用 f.frr();

  • 2楼网友:轮獄道
  • 2021-08-21 05:33

你要用类变量来点出来啊,什么都没有你这样会报错的。

  • 3楼网友:春色三分
  • 2021-08-21 04:13

应该使用 new Fruit.frr();

虽然是同一命名空间,但是  frr 是Fruit 的成员,只能通过Fruit对象来访问.apple类不是fruit 的子类,也不是友好类,所以不能直接访问!

  • 4楼网友:痴妹与他
  • 2021-08-21 03:28
啥子意思哦?  你那里在 frr();不是调用了那个类里面的方法了得嘛?  跟你问的矛盾了
  • 5楼网友:怙棘
  • 2021-08-21 03:13

还有一个概念叫做实例方法

如果是同一个命名空间下,但是frr并不是静态的方法,所以不能直接调用,必须是new一个实例才可以用。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯