方法、字段和属性,以及成员继承

public void SuiShiDaJi()
{
Console.WriteLine("碎石打击");
}
为什么第一行代码后面有(),但是那些字段和属性的代码后面没有()

因为SuiShiDaJi() 是一个方法的定义,而不是字段或属性。方法是用来执行一系列操作或者完成特定任务的代码块,而不是用来存储数据的。

在C#中,方法通常需要使用()来表示它们可以被调用。这就是为什么在你的 SuiShiDaJi 方法后面有 ()。当你调用这个方法时,你会使用这种方式:SuiShiDaJi()。

相比之下,字段和属性是用来存储数据的,它们不需要(),因为它们不是用来执行操作的,而是用来保存和访问数据的。你之前提供的字段和属性的代码示例中,只是定义了它们的结构,而不是在代码中实际执行某种操作。因此,它们后面不需要()。

成员继承

字段(大部分是private)修饰符为public时可以访问,访问时base.字段名
属性(大部分是public)访问时base.属性名
普通方法,public或者private,访问时 base.普通方法名()
构造方法,大部分情况是public,访问时 base()

C#中,父类中使用public修饰的成员可以在子类中直接访问到,也就意味着实例化生成的对象也可以直接访问到。
在C#中,如果在父类中定义了一个成员(字段、属性、方法等),并且使用了 public 访问修饰符,那么这个成员就可以被子类中的代码直接访问。这也意味着,当你创建子类的对象(实例),这个对象也可以通过对象名来直接访问父类中的 public 成员。
假设你有一个父类 Animal,其中有一个 public 方法 Speak(),表示动物会发出声音。然后,你创建了一个子类 Dog,它继承自 Animal。现在,当你创建一个 Dog 类的对象,你可以通过这个对象来直接调用 Speak() 方法,因为它继承自父类 Animal。

class Animal
{
    public void Speak()
    {
        Console.WriteLine("动物发出声音");
    }
}

class Dog : Animal
{
    // 子类可以继承父类的 public 方法
}

class Program
{
    static void Main(string[] args)
    {
        Dog myDog = new Dog();
        myDog.Speak(); // 可以直接调用父类的方法
    }
}

这里,myDog 是 Dog 类的一个实例,但由于 Dog 类继承了 Animal 类,所以它可以直接访问 Animal 类中的 public 方法 Speak()。

这个概念有助于实现代码的重用和组织,因为子类可以继承父类的行为,同时也可以在子类中添加自己的行为。这种继承和访问权限的机制是面向对象编程中的一部分,有助于构建复杂的程序结构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。