项目空间

学习笔记N-180

类

更新
内容块
24
阅读
约 2 分钟
路径
学习笔记 / C#

类的实例化

代码块C++
// 类:人的模板,只定义属性/行为
public class Person
{
    public string Name;
    public int Age;
}
代码块C++
// 实例化语法:new 类名()Person p1 = new Person();
代码块C++
p1.Name = "张三";
p1.Age = 20;
Console.WriteLine(p1.Name);

和结构体,结构化绑定(c++)的思想差不多,一个基本的封装,调用时可以解

同一个类创造多个实例间互不影响

抽象类(abstract class)

继承了抽象父类的子类必须重写父类中全部的方法(抽象子类可以不实现)

允许在抽象父类中没有的方法,在他的各个继承了他的子类中去定义,不过不标准,不规范,不建议

一种实现:

代码块Java
using System;

abstract class Animal
{
    public string Name { get; set; }

    public void Breathe()
    {
        Console.WriteLine("动物在呼吸");
    }

    public abstract void Shout();
}

class Dog : Animal
{
    public override void Shout()        //重写了方法 override
    {
        Console.WriteLine("汪汪汪");
    }
}

class Cat : Animal
{
    public override void Shout()
    {
        Console.WriteLine("喵喵喵");
    }
}

class Program
{
    static void Main()
    {
        Dog dog = new Dog();
        dog.Name = "旺财";
        dog.Breathe();
        dog.Shout();

        Cat cat = new Cat();
        cat.Shout();
    }
}

抽象方法

Sealed class

密封类

可以正常实例化,但是不能被继承了

密封方法

在下方的子类中不允许被重写

不过有 public sealed override + 方法名

解释:当前类重写了父类的虚 / 抽象方法,同时把这个方法彻底密封,它的所有子类都不能再重写该方法。