多态:
简而言之就是龙生九子,各有不同

有了继承,才有了多态

1、虚方法 virtual
重写 override

父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写

子类重写父类的方法使用的是override关键字

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 多态
{
public class Fly
{
public virtual string Fling()
{
return "拍拍翅膀就能飞!!!";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 多态
{
public class Plane:Fly
{
public override string Fling()
{
return "喷火就能飞!!!";
}
}
}
 

___________________________________________________________________________________________________________________________2、抽象类
是因为普通的多态虚方法没有人用本身的方法主体,那么不如只建立方法框架,继承后自己写方法

抽象类就是专门当父类的,abstract
抽象类中可以有抽象方法:abstract
抽象方法一定在抽象类中,但是抽象类中不一定只有抽象方法,也可以有普通方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 抽象类
{
public abstract class Fly
{
public abstract string Fling(); public string Eat()
{
return "吃小米";
} }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 抽象类
{
public class Bird : Fly
{
public override string Fling()
{
return "拍拍翅膀就能飞!!";
} }
}
 

___________________________________________________________________________________________________________________________3、接口

假设人为一个对象

吃饭,睡觉 - 基础类
技能,地点 - 赚钱类
娱乐1,娱乐2 - 娱乐类

接口就是出来做 干爹的,接口不是类 interface
编写方法格式: string 方法名();
实现接口的方法 不要override,直接正常编写就可以了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 接口
{
public abstract class JiChu
{
public abstract string ChiFan(); public abstract string ShuiJiao(); }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 接口
{
interface ZhuanQian
{
string JiNeng();
string DiDian();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 接口
{
interface YuLe
{
string YuLe1();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 接口
{
class NanRen : JiChu, ZhuanQian, YuLe
{
public override string ChiFan()
{
return "大口吃饭";
} public override string ShuiJiao()
{
return "大字型睡";
} public string JiNeng()
{
return "敲代码";
} public string DiDian()
{
return "白宫";
} public string YuLe1()
{
return "LOL";
} }
}
 
 

__________________________________________________________________________________________________________________________类库:

其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好。

优点:保密性好
缺点:如果这个方法不好用,使用者无法自己去更改它。

类文件是.cs    类库是.dll

新建项目为类库,在debug文件夹下找到dll文件

___________________________________________________________________________________________________________________________

委托:

委托可以理解为:函数的指针

关键词:delegate

声明:
public delegate int FirstDel(int a, int b);

创建委托变量:
FirstDel 名字 = 与这个委托类型相同的方法;

___________________________________________________________________________________________________________________________

is,as运算符:

is : 判断某一个对象是否是某一种类型
对象 is 类型名 是这种类型返回 true 不是返回 false

as : 将某一个对象转换成某一种类型,如果转换不成功,那么会给这个对象赋一个null,不会抛出异常

___________________________________________________________________________________________________________________________

泛型集合List<T>:

综合了集合与数组的优点,
固定数据类型,不限制长度的一种集合

List<类型> 集合名 = new List<类型>();

___________________________________________________________________________________________________________________________

var dynamic万能变量

多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量的更多相关文章

  1. 类与接口(五)java多态、方法重写、隐藏

    一.Java多态性 面向对象的三大特性:封装.继承.多态. 多态的类型,分为以下两种: 编译时多态: 指的是 方法重载.编译时多态是在编译时确定调用处选择那个重载方法,所以也叫 静态多态,算不上真正的 ...

  2. C#属性-索引器-里氏替换-多态-虚方法-抽象-接口-泛型-

    1.属性 //属性的2种写法 public class person { private string _name; public string Name { get { return _name; ...

  3. C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)

    常用类库StringBuilder StringBuilder高效的字符串操作 当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作. String 对象是不可变的. 每次使用 System. ...

  4. 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合

    1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...

  5. 多态、类库、委托、is和as运算符、泛型集合

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...

  6. java的方法重写 ,多态和关键字 instanceof和final

    package cn.pen; /*final 是一个java的关键字,用于修饰局部变量.属性.方法.类,表示最终的意思. final修饰类表示最终类,无法被继承.public final class ...

  7. Java8函数式接口/Lambda表达式/接口默认方法/接口静态方法/接口冲突方法重写/lambda表达式指定泛型类型等

    一:函数式接口 1.函数式接口的概念就是此接口必须有且只能有一个抽象方法,可以通过@FunctionalInterface来显示规定(类似@Override),但是没有此注解的但是只有一个抽象方法的接 ...

  8. C#通过虚方法实现方法重写—多态。

    class Program { //希望person存的是哪个类的对象就调用哪个类的方法 //第一步 将父类中对应方法家virtual关键字 变为虚方法(子类可重写) //子类中方法用override ...

  9. Golang 中的 面向对象: 方法, 类, 方法继承, 接口, 多态的简单描述与实现

    前言: Golang 相似与C语言, 基础语法与C基本一致,除了广受争议的 左花括号 必须与代码同行的问题, 别的基本差不多; 学会了C, 基本上万变不离其宗, 现在的高级语言身上都能看到C的影子; ...

随机推荐

  1. cordova3.X 运用grunt生成plugin自定义插件骨架

    Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些 ...

  2. 变形--原点 transform-origin

    任何一个元素都有一个中心点,默认情况之下,其中心点是居于元素X轴和Y轴的50%处.如下图所示: 在没有重置transform-origin改变元素原点位置的情况下,CSS变形进行的旋转.位移.缩放,扭 ...

  3. 移动widget开发

    发现Oracle----php连接有很多bug无法解决,只好转向php--连接mysql数据库,并装载了mysql两个文件,跟客户端NAVICAT_FOR_MYSQL,然后直接建表,用于测试,能够连通 ...

  4. Oracle中游标返回多条数据的情况

    DECLARE -- 定义类型. TYPE test_type IS TABLE OF test_main%ROWTYPE; test_data test_type; -- 定义游标. CURSOR ...

  5. 夺命雷公狗---DEDECMS----12dedecms全局标签的使用以及嵌套标签的使用

    在网站开发中,在很多页面可能会使用到同一个变量,比如路径网站信息等,所以我们可以用全局变量来使用. 默认的放在: 进去里面看下就会发现很多的常量都是在这里定义的: 我们在实际开发的时候可以将我们在多个 ...

  6. android怎么换背景图片

    我不晓得一般是怎么做的,但是至少可以用两种方法,一种是用一个全屏的ImageView来当作背景,通过修改imageview来修改背景图片,一种是将你xml中最外层的那个布局,LinerLayout之类 ...

  7. Oracle中的rownum用法解析

    注意:rownum从1开始:  1.rownum按照记录插入时的顺序给记录排序,所以有order by的子句时一定要注意啊!  2.使用时rownum,order by字段是否为主键有什么影响?  3 ...

  8. [MacOS] xcrun: error: active developer path ("/Volumes/Xcode/Xcode6-Beta.app/Contents/Developer") does not exist, use xcode-select to change

    When using MacOS with xcode6-beta, i always meet these error: xcrun: error: active developer path (& ...

  9. Mysql子查询、关联查询

    mysql中update.delete.install尽量不要使用子查询 一.mysql查询的五种子句         where(条件查询).having(筛选).group by(分组).orde ...

  10. Windows系统文件受损的修复技巧

    Windows2000/XP系统文件受损的修复技巧 意外重启.安装了不兼容的软件.恶意程序侵扰.误删文件……有太多种可能性会使我们的系统文件受损,而系统文件受损后最直接的表现就是系统不稳定.经常出现错 ...