C#[抽象类,接口]
Ⅰ.抽象类
1.抽象类、抽象方法
抽象类:通常情况下,它里面有抽象方法,类前面定义了一个abstract
抽象方法:只定义了方法的名称,没有定义方法的内容
2.为什么要使用抽象类、抽象方法?
都是为了继承
3. 怎么去定义抽象类,抽象方法?
abstract +类名,abstract+方法名
4.特点:
❶.抽象类不能被实例化;
❷.抽象方法的作用是为子类提供一个统一的接口,抽象方面里面只有声明,没有实现;
❸. 一个类一旦继承了一个抽象类,就必须实现对该抽象类里面所有的抽象方法的实现;
public abstract class Person{public abstract void A();public abstract void B();}
Person
public class C :Person{public override void A(){Console.WriteLine("China");}public override void B(){Console.WriteLine("nihao");}public static void Main(){C me = new C();me.A();}}
class C :Person
❹.一个抽象类里面可以有非抽象方法,但是一旦一个类里面有抽象方法,该类就为抽象类了;
❺.抽象方法在声明后用一个;结束,不需要用{};
❻.抽象方法在覆写的时候不需要声明为虚方法;
Ⅱ.接口
接口:可以看成一个更加严格意义上的抽象类,当是一个接口的时候,它里面只能是抽象方法,而不能有非抽象方法
1、怎么去定义一个接口?
Interface +类名
2、怎么去定义接口里面的方法?
eg:
void A();
也可以加上参数void A(string name);
注意:千万不能这么写,void B(){};//不能这样写,因为接口里面全部都是只定义了方法名,而没有具体的实现过程
4、特点:
❶.接口用来实现多继承,一个类只能有一个父类,但可以继承于多个接口class A :B,C
(可以是继承这个接口class Animal:Interface1,也可以继承另一一个接口class Animal:Interface1,Interface2)
❷. 接口是一种特殊的抽象类,它里面规定得更严格,里面的方法只能为抽象方法
❸.定义一个接口的时候,一般为缺省,即interface +类名,前面自动加上了public abstract,定义接口中的方法时,也只需要写返回类型 +方法名即可,因为也默认为public abstract
❹.接口里面的所有成员都是公共的
❺.一个类继承与一个接口,就必须完成该接口中所有方法的实现
❻.接口不能包含字段,构造函数,静态变量,或者常量等
5、接口用在什么地方?
接口是多继承,接口的作用相当于一个工厂要生产插座,提供一个模型,模型没有提供实现的具体方法,具体的实现过程,只是定义了一个模型。
6、为什么要使用接口?
就是为了继承,统一规范。
interface Interface1{//接口里面只能用抽象的方法void A();void B(string Name);//string Name参数可以写}
Interface1
class Animal:Interface1{//一个类继承了一个接口,就要去完成接口里面所有的override,必须要overridepublic override void A(){}public override void B(){}public Animal(){Console.WriteLine("我是动物类!");}}
Animal:Interface1(继承接口)
Ⅲ.抽象类和接口有什么区别?
区别:
1.抽象类:有抽象的方法,也有非抽象的方法;
接口:是更加严格意义上的抽象方法,里面必须全部是抽象方法;
2.抽象类:抽象类里面的成员可以是私有的private,公共的public,受保护的protected;
接口:里面所有成员都是公共的public;
共:
1.一个类继承一个抽象类或者一个接口,它必须要override抽象类/接口里面的所有方法。
转载于:https://www.cnblogs.com/wangwangwangMax/p/5502350.html
C#[抽象类,接口]相关推荐
- 小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。
抽象类接口的理解 鲁迅的一句话:总之岁月漫长,然而值得等待. /* 抽象类中的面试题: 1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成. 2. ...
- 抽象类+接口+内部类作业题及答案
抽象类+接口+内部类作业题 一.选择题 Person类和Test类的代码如下所示,则代码中的错误语句是( ).(选择一项) public class Person { public String na ...
- 抽象类+接口+内部类作业题
抽象类+接口+内部类作业题 一. 选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是( c ).(选择一项) public class Person { public ...
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...
- 185-186 抽象类+接口案例/运动员和教练
185-186 抽象类+接口案例/运动员和教练 需求:有乒乓球运动员.篮球运动员.乒乓球教练.篮球教练.签了出过交流,乒乓球教练.乒乓球运动员需要学习英语.请用所学知识分析,这个案例中有哪些具体类.哪 ...
- JAVA抽象类接口初始化块实验_抽象类和接口 - 逝水无痕7777的个人空间 - OSCHINA - 中文开源技术交流社区...
抽象类和接口 1.抽象类 抽象方法是只有方法签名,没有方法实现的方法.有抽象方法的类只能被定义成抽象类,抽象类可以没有抽象方法.抽象方法和抽象类必须使用abstract修饰符来定义. 抽象类不能被实例 ...
- day09 多态抽象类接口
多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
最新文章
- 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...
- Hasor【付诸实践 03】Dataway 无代码接口工具 DataQL 聚合查询引擎使用 Mybatis 实现分页查询举例说明 + 问题分析(针对GreenPlum数据库)
- 计算机课是一体化教学吗,计算机基础课程理实一体化教学模式
- 深入理解Java中的反射技术
- 我的 Java 血泪史
- 栈的基本操作(C/C++)
- ADC学习(4)—— 电压比较器
- STM32实现基于I2C的AHT20温湿度采集
- c语言用户态锁使用,用户态自旋锁、读写自旋锁及互斥锁
- VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符
- 为 什 么 说 Synchronized 是 非 公 平 锁
- 如何查询计算机com口使用
- 聊天室php数据库,聊天室phpmysql(五)
- c语言整数四则运算表达式的输出格式控制,四则运算
- 车辆gps监控系统中心服务器,卫星gps车辆监控平台简介
- MYSQL数据库插入数据时出现Data truncation问题
- 智慧睡眠风口之上,企业破圈要聚焦“场景竞争力”
- 关于小程序的https
- Django-blog-zinnia初体验(一)
- 苹果创始人乔布斯简介_iPhone SE 2,一款致敬乔布斯的经典,非全面屏时代的收官之作...