C#封装继承多态

1. 封装(Encapsulation)

定义:隐藏对象的内部实现细节,仅对外暴露可控的访问方式。
目的:保护数据完整性,简化使用,隔离变化。
实现方式

  • 访问修饰符publicprivateprotectedinternal等。
  • 属性(Property):通过get/set控制字段读写。
  • 方法(Method):公开操作数据的接口。
public class BankAccount {
    private decimal _balance; // 私有字段,外部不可直接访问

    public decimal Balance {
        get { return _balance; }
        private set { _balance = value; } // 只能在类内修改余额
    }

    public void Deposit(decimal amount) {
        if (amount > 0) _balance += amount;
    }
}

2. 继承(Inheritance)

定义:子类继承父类的属性和方法,实现代码复用和层次化设计。
特点

  • C#仅支持单继承(一个类只能有一个直接父类)。
  • 使用 : 符号实现继承(如 class Dog : Animal)。
public class Animal {
    public void Eat() => Console.WriteLine("Eating...");
}

public class Dog : Animal {
    public void Bark() => Console.WriteLine("Barking...");
}

// 使用
Dog dog = new Dog();
dog.Eat();  // 继承自Animal
dog.Bark(); // 自身方法

3. 多态(Polymorphism)

定义:同一操作在不同对象中表现出不同行为。
两种形式

  1. 编译时多态(静态):方法重载(Overload)。
  2. 运行时多态(动态):通过虚方法(virtual)和重写(override)实现。
public class Shape {
    public virtual void Draw() => Console.WriteLine("Drawing a shape");
}

public class Circle : Shape {
    public override void Draw() => Console.WriteLine("Drawing a circle");
}

// 使用
Shape shape = new Circle();
shape.Draw(); // 输出 "Drawing a circle"(实际调用子类方法)

你可能感兴趣的:(c#,开发语言)