C#面向对象_抽象类
抽象类用来描述现实生活中的期望、计划、规则等等抽象的事物。它是指在规划中但还没有成为现实的事物。
先看实例:
class Program
{
static void Main(string[] args)
{
starBucks one = new starBucks(); //实例化
one.磨咖啡();
one.卖咖啡();
}
}
abstract class dreamcoffeeshop //创建抽象类
{
abstract public void 磨咖啡();
abstract public void 卖咖啡();
}
//抽象类本身不能实例化对象,它唯一的作用就是被子类继承并且实现。
class starBucks : dreamcoffeeshop //继承并实现
{
public override void 卖咖啡()
{
Console.WriteLine("天天起床卖咖啡!");
}
public override void 磨咖啡()
{
Console.WriteLine("磨咖啡呀磨咖啡,我磨磨磨磨磨!");
}
}
语法:
[访问修饰符] abstract class 类名
{
抽象方法(只是抽象的一个描述,没有具体的实现过程); //比如:abstract public void 磨咖啡();
}
注意
1、 抽象类中,可以有字段,但是字段不能为抽象abstract.
2、 如果必须使用抽象来定义变量,可以使用属性。
. abstract class robot
{
public abstract string name { get; set; }
}
3、 抽象类只能被继承,不能直接实例化对象。
4、 抽象类中的抽象方法,必须在子类中全部重写并实现。
5、 抽象类中的抽象成员,不能是私有的,因为他必须被子类继承。
6、 抽象类中允许存在非抽象成员。
7、 子类重新并实现抽象成员的时候,必须用override来覆盖实现。
。 class Program
{
static void Main(string[] args)
{
now one = new now();
one.sayhello();
}
}
abstract class robot
{
public abstract string name { get; set; }
public int age;
public abstract void sayhello();
}
class now : robot
{
public override string name { get; set; }
public override void sayhello()
{
Console.WriteLine("hello");
}
}
8、 包含抽象成员的类必须也是抽象类。
抽象方法
抽象方法就是抽象类之中需要被子类继承并重写的方法
定义语法
[访问修饰符] abstract 返回类型 方法名(传入参数);
或
abstract [访问修饰符] 返回类型 方法名(传入参数);
继承并重写抽象方法的语法
[访问修饰符] override 返回类型 方法名(传入参数)
{
方法体中的代码
}
注意:
1、 抽象类中的抽象方法没有具体的实现过程。
2、 抽象类中的抽象方法不能是私有的。
3、 抽象类中的抽象方法,必须在子类中全部重写并实现。
4、 子类找那个必须用override覆盖实现所有的抽象方法。
5、 不能将静态方法定义为抽象方法。
抽象属性
示例
public abstract string name { get; set; }
语法
[访问修饰符] abstract 返回类型 属性名{get;set;}
转载于:https://www.cnblogs.com/gjnsmallworld/p/7216393.html
C#面向对象_抽象类相关推荐
- python类方法和实例方法syntax errors_《Fluent Python》CH.11_面向对象_接口:从协议到抽象基类...
主要内容 首先,本章说明抽象基类的常见用途:实现接口时作为超类使用 说明抽象基类如何检查具体子类是否符合接口定义,以及如何使 用注册机制声明一个类实现了某个接口,而不进行子类化操作 最后, 说明如何让 ...
- php面向对象代码_PHP面向对象之抽象类详解(代码实例)
[摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...
- Java自学笔记——Java面向对象——04.抽象类、接口、内部类
Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...
- Java面向对象编程——抽象类和接口
Java面向对象编程--抽象类和接口 定义类的过程就是抽象和封装的过程,而抽象类与接口则是对实体类进行更高层次的抽象,进定义公共行为和特征. 抽象类: 如果一个类没有足够的信息去描述一个具体的对象,那 ...
- java模拟加速匀速减速_【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统
[JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 模拟汽车驾驶系统 定义一个交通工具的类,包括: 属性:速度 方法:设置速度,加速 ...
- 9继承进阶_抽象类_接口
9继承进阶_抽象类_接口 导语: 想到在写 子父类中成员变量的特点 子父类中成员函数的特点.★★★★★ 子父类中构造函数的特点.★★★★★ final关键字的使用,重点在于常量的定义 抽象类的由来,犬 ...
- W6_面向对象_封装_继承_多继承_多态
W6_面向对象_封装_继承_多继承_多态 80.81.82.83.第02章节-Python3.5-面向对象介绍 84.第05章节-Python3.5-实例变量与类变量 85.第06章节-Python3 ...
- [Linux驱动之路] 驱动设计的思想_面向对象_分层_分离—程序扩展
韦东山老师的Linux驱动设计基础课程的p128 5_101 驱动设计的思想_面向对象_分层_分离这课在开发板上实作练习,可控制imx6ull_pro板子的LED开关. 基于韦老师代码的基础上,更改如 ...
- Java面向对象之抽象类与接口
Java面向对象之抽象类与接口 ⚡️前言⚡️ 本篇文章为面向对象部分的第三篇文章,前两篇文章见链接包和继承.组合与多态.抽象类和接口都是继承关系中父类的更进一步,结合前两篇文章来阅读更易理解掌握.
最新文章
- MicroSoft的Office使用攻略
- java排序-交换排序-快速排序
- jsp过滤器示例_Java 8过滤器,地图,收集和流示例
- python程序设计方法_Python程序设计现代方法
- Cognos 8 错误及故障排除(转载)
- 如何用WSUS2.0分发补丁
- inline,block 和 inline-block 的区别
- Android自动播放下一曲,环信Android自动播放下一条语音
- mysql的update怎么恢复_mysql误update数据恢复
- android应用跳文件管理,10款优秀Android文件管理器应用
- 时间序列数据的白噪声检验
- 深入浅出极大似然估计
- 我国魏晋时期割圆法现在用计算机mn,割圆术
- android电视怎么使用教程,手机无线投屏到电视机的方法和具体该操作
- 课程体系包括哪些要素_课程体系包括哪些要素
- 游戏类APP应用周末下载量达最高
- ppt学习日记:L4-图片实战技巧
- 《Adobe Flash CS5 ActionScript 3.0中文版经典教程》——1.3 使用代码片断添加ActionScript...
- 【数学建模】数学建模学习3---非线性规划(例题+matlab代码实现)
- 给排水计算机应用电子版,给排水规范大全
热门文章
- php数组分开_PHP学习之五:数组(三)合并、拆分、接合和分解数组
- 手机zip模拟器_车祸现场模拟器简体中文免安装版 6.4G
- mysql分页tmp_count,MySQL MyISAM和InnoDB引擎的写入速度优化比较,分页速度优化
- c语言删除文件中的结构体_C语言插入、删除、更改文件内容
- 逸仙电商企业网络推广如何打造出百亿完美日记后又收购高端护肤品牌
- python的100个案例_Python实例100个(基于最新Python3.7版本)
- java 所有的数据集合_第五节:Java中常用数据集合
- 解决go get 下载慢的问题
- android隐藏状态栏
- 开发日记-20190516 关键词 MVVM-代码浏览结束