Ⅰ.抽象类

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#[抽象类,接口]相关推荐

  1. 小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。

    抽象类接口的理解 鲁迅的一句话:总之岁月漫长,然而值得等待. /* 抽象类中的面试题: 1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成. 2. ...

  2. 抽象类+接口+内部类作业题及答案

    抽象类+接口+内部类作业题 一.选择题 Person类和Test类的代码如下所示,则代码中的错误语句是( ).(选择一项) public class Person { public String na ...

  3. 抽象类+接口+内部类作业题

    抽象类+接口+内部类作业题 一. 选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是(  c  ).(选择一项)   public class Person { public ...

  4. 继承 多态 抽象类 接口

    面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...

  5. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

  6. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  7. 185-186 抽象类+接口案例/运动员和教练

    185-186 抽象类+接口案例/运动员和教练 需求:有乒乓球运动员.篮球运动员.乒乓球教练.篮球教练.签了出过交流,乒乓球教练.乒乓球运动员需要学习英语.请用所学知识分析,这个案例中有哪些具体类.哪 ...

  8. JAVA抽象类接口初始化块实验_抽象类和接口 - 逝水无痕7777的个人空间 - OSCHINA - 中文开源技术交流社区...

    抽象类和接口 1.抽象类 抽象方法是只有方法签名,没有方法实现的方法.有抽象方法的类只能被定义成抽象类,抽象类可以没有抽象方法.抽象方法和抽象类必须使用abstract修饰符来定义. 抽象类不能被实例 ...

  9. day09 多态抽象类接口

    多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...

  10. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

最新文章

  1. 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...
  2. Hasor【付诸实践 03】Dataway 无代码接口工具 DataQL 聚合查询引擎使用 Mybatis 实现分页查询举例说明 + 问题分析(针对GreenPlum数据库)
  3. 计算机课是一体化教学吗,计算机基础课程理实一体化教学模式
  4. 深入理解Java中的反射技术
  5. 我的 Java 血泪史
  6. 栈的基本操作(C/C++)
  7. ADC学习(4)—— 电压比较器
  8. STM32实现基于I2C的AHT20温湿度采集
  9. c语言用户态锁使用,用户态自旋锁、读写自旋锁及互斥锁
  10. VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符
  11. 为 什 么 说 Synchronized 是 非 公 平 锁
  12. 如何查询计算机com口使用
  13. 聊天室php数据库,聊天室phpmysql(五)
  14. c语言整数四则运算表达式的输出格式控制,四则运算
  15. 车辆gps监控系统中心服务器,卫星gps车辆监控平台简介
  16. MYSQL数据库插入数据时出现Data truncation问题
  17. 智慧睡眠风口之上,企业破圈要聚焦“场景竞争力”
  18. 关于小程序的https
  19. Django-blog-zinnia初体验(一)
  20. 苹果创始人乔布斯简介_iPhone SE 2,一款致敬乔布斯的经典,非全面屏时代的收官之作...

热门文章

  1. 美术的故事 —— 那些用技术创造艺术的游戏开发者
  2. MySQL数据库MVCC多版本并发控制简介
  3. The requested URL /nagios/cgi-bin/statusmap.cgi was not found on this server
  4. oracle的命名规则
  5. Java学习正嗨Day2!
  6. Java--多线程编程
  7. Phython 3 笔记2 —— 基础语法
  8. study note9
  9. js判断中文字符长度
  10. 【开源】NodeJS仿WebApi路由