C sharp中面向对象的一些基础概念
1. OOP –Object Oriented Programming
实例化类
1
2
3
4baseclass bc = new baseclass();
subclass sc = new subclass();
bc.Func();
sc.Func();里氏转换
- 子类对象可以直接赋值给父类变量
- 子类可以调用父类对象,但是父类只有调用自己
- 父类中如果是子类对象,则可以将父类强制转换为子类
1
2
3
4
5
6
7
8
9
10
11//----------------------------------A.里氏转换知识点:----------------------------------
//里氏转换原则1.子类对象可以直接赋值给父类变量
sc.Alphabet = total.T;
bc.Alphabet = sc.Alphabet;
//里氏转换原则2.子类可以调用父类对象,但是父类只有调用自己
sc.bsfun();
//里氏转换原则3.父类中如果是子类对象,则可以将父类强制转换为子类
baseclass bc2 = new subclass();
subclass sc2 = new subclass();
sc2 = (subclass)bc2
2. 抽象类以及抽象类不能被实例化
1 |
|
3. 静态类
1 |
|
4. 委托
1 |
|
5. 嵌套类
1 |
|
6. 匿名类
1 |
|
7. 密封类
1 |
|
8. Object类
1 |
|
9. 父类虚方法以及在子类中重写虚方法
- 父类建立虚方法
1
2
3
4
5
6//----------------------------------父类虚方法 virtual--多态特征----------------------------------
public virtual void Func()
{
Console.WriteLine("父类的虚方法");
Console.ReadKey();
} - 子类重写虚方法
1
2
3
4
5
6
7//----------------------------------子类重写父类虚方法----------------------------------
public override void Func()
{
// base.Func();---这条表示继承自父类,屏蔽可以只使用子类自己的方法,一般这个base用于公有的初始化方法,不屏蔽可以实现子类继承父类的公有方法。
Console.WriteLine("子类的虚方法");
Console.ReadKey();
}
10. 继承,接口,重载,构造函数,析构函数
1 |
|
11. 接口
1 |
|
12. 接口使用用例
创建一个基类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19class Car
{
private string brand;
public string Brand
{
get { return brand; } set { brand = value; }
}
public Car(string brand)
{
this.brand = brand;
}
public void Run()
{
Console.WriteLine("{0}品牌的汽车在奔跑", brand);
Console.ReadKey();
}
}创建一个接口
1
2
3
4
5//----------------------------------接口测试----------------------------------
internal interface IFly
{
void Fly();
}创建两个子类,其中一个会用到接口方法
1
2
3
4
5
6
7class BMWCar:Car
{
//初始化
public BMWCar(string brand)
:base(brand)
{ }
}1
2
3
4
5
6
7
8
9
10
11
12
13class BatCar: Car,IFly
{
public BatCar(string brand)
:base(brand)
{ }
//快速操作和重构,和接口抽象方法保持一直
public void Fly()
{
Console.WriteLine("batCarCanFly");
Console.ReadKey();
}
}
13. 运算符重载
- 运算符重载的声明方式:
operator
关键字告诉编译器,它实际上是一个运算符重载,后面是相关运算符的符号; - C#要求所有的运算符重载都声明为public和static,这表示它们与它们的
类或结构
相关联,而不是与实例相关联。
1 |
|
14. 复合赋值运算符
+=
:加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数。比如C += A 相当于 C = C + A
;- 在控件相关应用里面,
+=
用来关联控件事件,比如:1
2
3//事件订阅运算符:+=
//取消事件订阅运算符:-=
timer.Tick += timer_Tick; <<=
:左移且赋值运算符。比如C <<= 2 等同于 C = C << 2
;>>=
:右移且赋值运算符。比如C >>= 2 等同于 C = C >> 2
;
C sharp中面向对象的一些基础概念
http://example.com/2024/07/21/C sharp中面向对象的一些基础概念/