public class Fruit
{
public void frr()
{
Console.WriteLine("水果");
}
}
class Apple
{
public void app()
{
frr();
Console.WriteLine("苹果");
}
}
在同一命名空间下,Fruit类是public类型,为何Apple类不能使用Fruit类的frr方法??
有两种方法可以调用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();
因为这是属于两个类,所以类与类之间调用,必须实例化,或者是一个类的方法是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();
你要用类变量来点出来啊,什么都没有你这样会报错的。
应该使用 new Fruit.frr();
虽然是同一命名空间,但是 frr 是Fruit 的成员,只能通过Fruit对象来访问.apple类不是fruit 的子类,也不是友好类,所以不能直接访问!
还有一个概念叫做实例方法
如果是同一个命名空间下,但是frr并不是静态的方法,所以不能直接调用,必须是new一个实例才可以用。
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息