博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象类特点
阅读量:6076 次
发布时间:2019-06-20

本文共 2132 字,大约阅读时间需要 7 分钟。

1 抽象成员必须标记为abstract,并且不能有任何实现

1     public abstract class Animal2     {3         // 存在的意义:让子类重写,来实现多态4         public abstract void Bark();5         public abstract string Name { get; set; }6     }
View Code

 2 抽象成员必须在抽象类中 

1     class Program2     {3         // 错误说明4         // Program.Cry()”是抽象的,但它包含在非抽象类“Program”中5         public abstract void Cry();6     }
View Code

 3   抽象类不能被实例化

1 public abstract class Animal 2     { 3         public abstract void Bark(); 4     } 5  6 public class Program 7     { 8         static void Main(string[] args) 9         {10             // 无法创建抽象类或接口"Animal"的实例11             Animal animal= new Animal();12         }13     }
View Code

 4 子类继承抽象类后,必须把父类中的所有抽象成员都重写

(除非子类也是一个抽象类,则可以不重写)

1  public abstract class Animal 2     { 3         // 存在的意义:让子类重写,来实现多态 4  5         #region 非抽象成员 6             private int _age; 7  8             public int Age 9             {10                 get11                 {12                     return _age;13                 }14 15                 set16                 {17                     _age = value;18                 }19             }20 21             public Animal(int age)22             {23                 this.Age = age;24             }25 26             public Animal()27             {28 29             }30         #endregion31 32         #region 抽象成员33             public abstract void Bark();34             public abstract string Name { get; set; } 35         #endregion36 37     }38 39     public class Dog : Animal40     {41         public override string Name42         {43             get44             {45                 throw new NotImplementedException();46             }47 48             set49             {50                 throw new NotImplementedException();51             }52         }53 54         public override void Bark()55         {56             Console.WriteLine("狗狗汪汪叫");57         }58     }
View Code

 5  抽象成员的访问修饰符不能是private

 6  在抽象类中可以包含实例成员。并且抽象类中的实例可以不被子类实现

 7   抽象类是有构造函数的。虽然不能被实例化。

 8      如果父类中的抽象方法中有参数,那么,继承这个抽象父类的子类在重写父类的方法的时候必须传入对应的参数。

         如果父类的方法中有返回值,那么子类在重写父类的方法的时候也必须要传入返回值。

转载于:https://www.cnblogs.com/luozihua/p/9975191.html

你可能感兴趣的文章
五款漂亮的图标元素,不带重样,翻滚吧前端
查看>>
分享一个好东西,w3cfuns开发的前端工具箱
查看>>
Yii使用技巧大汇总
查看>>
Ubuntu14.04系统安装
查看>>
java Method 类的 isBridge() 方法
查看>>
angularjs 应用
查看>>
Xhprof 要点
查看>>
redis集群部署及踩过的坑
查看>>
newinstance()和new有什么区别
查看>>
Elasticsearch6.5+Kibana6.5+Logstash6.5 下载|部署|使用 实践
查看>>
Redis 笔记系列(十二)——Redis的主从复制、读写分离
查看>>
jquery实现点击input弹出下拉框
查看>>
ajax提交表单
查看>>
presto函数
查看>>
关于gtk控件上字符串像素宽度计算--Pango
查看>>
CSS Hack 浏览器兼容写法 用法
查看>>
a标签在firefox和chrome中失效(转自www.jqueryba.com)
查看>>
shiro加密/散列
查看>>
Linux Java Tomcat 环境配置,运维基本命令
查看>>
render_to_response 解决传递多个字典的问题
查看>>