类:
是用于描述一类对象的共同属性和行为的抽象表述,实际上就是创建对象的模板,每个对象都包含数据成员,并提供了访问和处理数据的方法。
this关键字指向类,比如
public string Run(string name)
{
this.name=name;
}
其中this.name代表类的成员name,而name表示这个方法中的name
static关键字是静态关键字,可以通过类直接调用
class Student
{
public static void Run()
{
Console.WriteLine("学习");
}
static void Main(string[] args)
{
Student.Run();
}
}
可以用类.直接调用,非静态只能通过对象.调用
关键字 readonly poublic redonly int r; 声明字段为只读
只能初始化的时候可以赋值或者通过构造函数赋值。
sealed 密封,密封类不允许被继承 ,密封方法不允许被重写,想要密封一个方法必须是重写之后的方法
class Base
{
public void Show()
{
Console.WriteLine("密封类的普通方法");
}
public virtual void Show1()
{
Console.WriteLine("普通类的密封方法");
}
}
class Class1 : Base
{
//声明密封方法,不能再被重写,不能被当前类的子类重写,防止重写某些类的代码导致混乱
public sealed override void Show1()
{
Console.WriteLine("密封之后的方法");
}
}
抽象类 :是不完整的模板 可以被继承 abstract class class_name{} 抽象方法也是abstract
其中可以包含普通方法和抽象方法,抽象类不能被实例化
子类继承抽象类的时候,如果抽象类里有抽象方法,子类要继承抽象类必须要实现抽象方法
通过override重写抽象方法 每个子类继承抽象方法时都需要重写
class Boss : Class1
{
public override void Run()
{
Console.WriteLine("跑步");
}
}
abstract class Class1
{
public void Move()
{
Console.WriteLine("移动");
}
public abstract void Run();
}
类的特性:
继承性:多个类有相似的方法和变量,
一个类可以继承多个接口,但只能继承自一个类。 class <派生类>(新类) : <基类> {}
多继承(多重继承):不支持同时继承多个基类,可以使用接口完成多继承
重写(被重写的是虚方法)override 两个方法
1.虚方法 virtual public virtual void run(){} public overrid void run(){}
2. public new void run(){}
base 指向当前类的父类 this指向当前类
多态性:一个接口,多个功能
静态多态性:函数重载:参数类型不同,参数个数不同,返回值类型不同
动态多态性: abstract 创建抽象类,抽象类不能创建实例,普通类不能有抽象方法
关键字sealed ,不能被继承,抽象类不能被声明为 sealed
普通类中函数需要在继承类中实现时,可以使用虚方法。关键字 virtual
public virtual void Draw(){}