C# 语法三 抽象类和接口
1.抽象类
2.接口
一 抽象类
跟普通类的区别:
a)用abstract标识类、抽象方法
b)抽象方法,只能声明,不能定义
c)抽象类不能实例化

二 接口
接口用interface标识,所有的成员(属性、方法、事件)都默认是public的,所以可以省略public。
接口所有成员,也只能声明,不能定义,不能实例化。

三 抽象类与接口的区别、相同点
相同点:
a)不能实例化
b)都可以被继承,但是可以继承多个接口,只能继承一个类(包括抽象类)
c)都包含未被定义的方法,抽象类的抽象方法不能定义,其他的非抽象方法必须被定义(跟普通类一样),但是接口所有成员,都不能被定义
区别:
a)抽象类的抽象方法,可以不被派生类实现(当派生类也为抽象类),但是接口所有成员必须被实现
b)继承多个接口,但是只能继承一个抽象类
c)抽象类可以跟普通类一样,包含private、protected成员(比如字段),也可以有静态字段,但是接口所有成员,默认为public(可以省略public),接口不能有字段
参考博客:https://www.cnblogs.com/sunzhenyong/p/3814910.html
C# 语法三 抽象类和接口的更多相关文章
- C++语法小记---抽象类和接口
抽象类和接口 C++中没有抽象类的概念 含有纯虚函数的类就是抽象类,抽象类的特点: 不能产生实例对象 只能被继承 接口是抽象类的一种特殊情况,具备以下条件的抽象类就是接口: 类中没有成员变量 所有的成 ...
- Java基础学习笔记(三) - 抽象类和接口
一.抽象类 没有方法主体的方法称为抽象方法,包含抽象方法的类就是抽象类. Java中使用 abstract 关键字修饰方法和类,抽象方法只有一个方法名,没有方法体. public abstract c ...
- java抽象类和接口区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- 深入理解java的抽象类和接口(转载)
原文链接:http://www.cnblogs.com/dolphin0520/p/3811437.html 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的 ...
- JAVA抽象类和接口的深入探讨
Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. ...
- Java基础知识(抽象类和接口)
一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abst ...
- Java面向对象—抽象类和接口
本文引用海子的一篇文章:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法 ...
- Java中抽象类和接口的区别?
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- Java基础之抽象类与接口
Java基础之抽象类与接口 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候 ...
随机推荐
- html页面边框的简单设置方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Nginx学习笔记(二)--- 配置虚拟主机
Linux下安装Nginx https://www.cnblogs.com/dddyyy/p/9780705.html 1.虚拟主机介绍 一台服务器分成多个"独立"的主机,每台虚 ...
- IntelliJ IDEA汉化步骤以及乱码解决
1.首先下载intellij idea 2017 汉化补丁 附上资源 链接: https://pan.baidu.com/s/1cHC76m 密码: q23m 2.解压该款汉化补丁到本地(我的资源不需 ...
- 判断api请求方式
$curl_request = $_SERVER['REQUEST_METHOD']; //获取请求方式 if($curl_request == 'POST'){ echo post; }else i ...
- 创建一个背景为蓝色的pygame窗口
import sys import pygame def creat_screen(): #初始化pygame pygame.init() #设置窗口大小并保存在screen对象中 screen = ...
- 前端面试整理——javascript算法和测试题
(1)算法: 1.斐波那契数列:1.1.2.3.5.8.13.21.输入n,输出数列中第n位数的值. 方案一: function fn(n){ var num1 = 1, num2= 1, num3 ...
- 【读书笔记】iOS-动态类型和动态绑定
id是泛类型,可以用来存放各种类型的对象,使用id也就是使用“动态类型”. 动态类型,就是指,对象实际使用的是哪一个类是在执行期间确定的,而非在编译期间. 虽然id类型可以定义任何类型的对象,但是不要 ...
- 运行gulp项目报错:AssertionError: Task function must be specified。
一.问题描述: gulp项目在本地windows 10机器上跑没有任何问题,但是放在centos 7虚拟机上跑报错:AssertionError: Task function must be spec ...
- IDEA项目搭建六——使用Eureka和Ribbon进行项目服务化
一.Eureka的作用 这里先简单说明使用eureka进行业务层隔离,实现项目服务化也可以理解为微服务,我一直崇尚先实现代码再学习理论,先简单上手进行操作,eureka使用分为三块,1是服务注册中心, ...
- Android spinner默认样式不支持换行和修改字体样式的解决方法
在spinner中显示的数据过多,需要换行,而Android自身提供的android.R.layout.simple_spinner_dropdown_item样式不支持换行,因此参考android提 ...