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