目录
前言
欢迎来到《C# 核心内容》的学习之旅!本书旨在为读者提供全面且深入的 C# 编程语言指导。无论您是初学者还是有一定经验的开发者,本书都将帮助您掌握 C# 的基础知识及其高级特性,从而能够更加高效地开发高质量的应用程序。
C# 是一种现代、面向对象的编程语言,由微软开发并在 .NET 框架上运行。自2000年发布以来,C# 已经发展成为一种广泛使用的语言,适用于各种应用程序开发,包括桌面应用、Web 应用、移动应用乃至游戏开发等。
本教程将带您逐步了解 C# 的基本概念,包括语法、数据类型、控制结构、类与对象、继承与多态等核心主题。除此之外,我们还将探讨一些高级主题,如泛型、异步编程、LINQ 以及 C# 最新的特性和改进。
正文
所有类的基类都是object
C#单根性---不能同时继承多个类
1、虚方法是在父类中定义,在子类中重写的
2、子类可以不用重写父类的虚方法
3、虚方法可以空实现
4、虚方法和抽象方法的区别
虚方法必须要有方法体(必须实现),但可以没有语句
抽象方法必须没有实现,必须在抽象类中声明
虚方法可以在抽象类中声明
抽象方法必须在子类中重写,虚方法可以被重写
5、实现多态的手段
虚方法Virtual
抽象方法abstract
接口
6、方法签名
方法名、返回值类型、参数列表都必须保持一致。[ 访问修饰符也得一致]
7、类中的成员如果不写访问修饰符默认是private
8、静态类为什么不能被实现例化
abstract修饰的类,不能被实例化
sealed修饰的类,不能被继承
9、访问修饰符
private 当前类中可以访问,类中成员的默认访问修饰符。
私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 当前类及子类中可以访问(在继承中用。)
保护访问。只限于本类和子类访问,实例不能访问。
internal 当前程序集内部可以访问
内部访问。只限于本项目内访问,其他不能访问。
protected internal
当前程序集或子类中(不同程序集也可以访问)。
内部保护访问。只限于本项目或是子类访问,其他不能访问
public 任何地方
公有访问。不受任何限制。
10、构造函数
base:
子类写的有参数的构造函数,默认调用的是父类的无参构造函数
想在子类中调用父类的有参数的构造函数,那么,必须在子类的构造函数后用base
this:
在本类中,自己的构造函数想要调用自己其他的构造函数,那么可以通过this
11、new关键字
- 表示在子类中隐藏从父类继承过来的虚方法
- 用new标记的方法是子类中的一个全新的方法
- 不能多态
12、子类可以通过构造函数调用父类的属性进行传参
13、sealed:(*)密封类,不能被继承
接口不能被实例化
静态类不能被实例化
抽象类不能被实例化
abstract修饰的类,不能被实例化
sealed修饰的类,不能被继承
14、抽象类中的抽象成员不能使用private访问修饰符,可以使用其他访问修饰符。
15、 虚方法:
1.父类中必须有实现。
2.子类中可以不重写。
3.虚方法可以在普通类中。(有序方法的类是可以(可能)被实例化的。)
抽象方法:
1.父类中不能有任何实现。
2.子类中必须重写(除非:子类也是一个抽象类。)
3.抽象方法必须在抽象类中。
16、重写 ToString override ToString();
17、方法重载
方法名称相同
方法签名不同
– 方法名
– 参数类型、个数、(顺序)
– 参数的修饰符(ref、out、params)
– 不包含方法返回值
18、类是对对象的抽象
抽象类是对类的抽象
接口是对行为的抽象
19、委托是一种引用方法的类型
20、实现接口的类分三种,一是抽象类,二是一般的类,再就是结构. 而实现方式又分为实现接口和显式实现接口.
21、对于“显式实现接口”,其实现方式就是将成员写成
接口名.成员名 的形式. 显式实现接口与一般的实现区别在于显式实现的成员只有接口对象才能调用.
22、对于接口,从定义就可以发现是对方法的抽象,也可描述成对能力的抽象;而抽象类是
对以事物的抽象,与具体的对象有关. 这么说很混乱
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家关注学习!