C#抽象类总结
来源:互联网 发布:java.util.node 编辑:程序博客网 时间:2024/06/06 15:53
C#抽象类总结
1. 解释什么是抽象类?
抽象类是包含抽象方法的类。那么什么又是抽象方法呢?抽象方法是没有方法内容的,只有一个方法名和参数列表的方法。并以;结尾。为了标注他的与众不同,在他的返回类型前加abstract。并在class前加abstract。
简言之,由abstract修饰的方法和类就是抽象的方法和类。
2. 抽象类的特点
① 抽象类只能做父类
② 抽象类不能实例化,既不能用new来产生属于抽象类的对象
③ 抽象类中除了抽象方法与普通方法不一样以外,其他的部分和普通类一样。即抽象类是普通类的特例,他特殊只是有抽象方法。所以它里面可以有字段,属性,普通方法。
3. 抽象方法的特点
① 抽象方法是没有方法内容的,只有一个方法名和参数列表的方法。并以;结尾。
② 在方法的返回类型前加abstract
③ 抽象方法的内容由他的继承类根据继承类自身情况去写。重写这个方法时把abstract替换成override
注意:②③也是抽象属性的定义和实现的方法
例如:
abstract class Class1 //定义抽象类
{ protected string name;
protected abstract string Name { //定义抽象属性
get; }
protected int age;
protected Class1() {
name = "a";
age = 4; }
protected abstract void A(); //定义抽象方法
}
class Class2:Class1 {
protected override string Nam { //实现抽象属性
get { return name; }
} //实现方法时他的修饰符只能是范围比父类大,或是相同
protected override void A() { //实现抽象方法
Console.WriteLine("aaaaaaaaaaaa"); }
static void Main() {
Class2 c = new Class2(); //正确,继承类可以定义自己的对象
Class1 c1=new Class1(); //错误,抽象类不能定义自己的对象
Console.WriteLine(c.Name + "/n" + c.age);
c.A(); } }
4.抽象类里的普通方法如果也想在子类中重写,有两种方法:
①在父类普通方法的返回类型前写virtual,这就告诉系统父类这个方法是虚的方法,在子类中重写该方法时,在方法的返回类型前可以什么也不写,可以写new,也可以写override,然后子类对象调用的方法就是在子类中重写的方法。
②在父类普通方法的返回类型前什么都不写,在子类中重写该方法时,在方法的返回类型前可以什么也不写,可以写new 。然后子类对象调用的方法就是在子类中重写的方法。
例如:
Abstract Class C
{
Protected abstract void A();
Protected void B(){
Console.WriteLine("bbbbb");
}
}
Class Class1:C
{
Protected void A() {
Console.WriteLine("aaaaaaa"); }
//Protected new void B(){ //正确}
//Protected override void B(){//正确}
Protected void B(){ //正确
Console.WriteLine("cccccccccccccc");
}
Static void Main() {
Class1 c1=new Class();
c.A(); 结果是:aaaaaaa
cccccccccccccc
c.B();
}
}
- C# 抽象类总结
- C#抽象类总结
- C#抽象类总结
- C# 抽象类和抽象方法知识总结
- C#抽象类和接口总结
- C#接口和抽象类的总结
- C#抽象类、抽象方法
- 黑马程序员之C#学习笔记: 抽象类总结
- C# 抽象类(知识要点归纳总结)
- C#抽象类
- C#抽象类
- C# 抽象类
- C#抽象类
- C#抽象类
- C#抽象类
- C#抽象类 abstract
- 有关C#抽象类
- C#抽象类
- JAVA常用技术网站
- fopen参数mode详解
- C#方法重载总结
- MySQL常用命令
- Mvc调用Reporting Service
- C#抽象类总结
- [转]在oracle下如何创建database link全面总结
- 解决System.out.println不好使的替代方法
- 大二最后的时光
- android下载编译以及文件系统提取总结
- 提高效率,------------(少用数组记录,直接进行比较)
- Linux 源码安装Mysql5.5
- Asp.Net Web Form 调用Reporting Service
- WinEdit 常用软件快捷键