直接看代码吧

using System;
using static System.Console; namespace ConsoleApp
{
//使用abstract,抽象类或方法,不能使用virtual,派生类必须实现所有抽象方法
abstract class Shape
{
public int Size { get; set; } public virtual void Draw()
{
WriteLine("shap");
}
}
//密封类(方法),就不能派生(重写) string类为密封的
sealed class Rect: Shape
{
public override void Draw()
{
WriteLine("rect");
//base.Draw();
}
}
//接口 相当于抽象类
//不能声明成员的修饰符,成员总是public,不能声明为virtual
//接口也可以彼此继承,从而添加新的声明
public interface IMyInterface
{
//可以包含方法、属性、索引器和事件的声明,不能实现
void Draw();
int Size { get; set; } }
//继承接口的类必须实现接口的所有东西
class A : IMyInterface
{
public void Draw()
{
WriteLine('A');
}
private int _size;
public int Size
{
get
{
return _size;
}
set
{
_size = value;
}
}
} class B : IMyInterface
{
public void Draw()
{
WriteLine('B');
}
private int _size;
public int Size
{
get
{
return _size;
}
set
{
_size = value;
}
}
} class Program
{
public void as_is(object o)
{
//1 ,如果该object类型不对就会引发InvalidCastException异常
IMyInterface myinterface = (IMyInterface)o;
myinterface.Draw(); //2 as
IMyInterface myinterface1 = o as IMyInterface;
if (myinterface1 != null)
{
myinterface1.Draw();
} //3 is
if (o is IMyInterface)
{
IMyInterface myinterface2 = (IMyInterface)o;
myinterface2.Draw();
} } static void Main(string[] args)
{
Shape s = new Rect();
s.Draw(); //接口可以引用任何实现该接口的类
IMyInterface a = new A();
IMyInterface b = new B(); a.Draw();
b.Draw(); }
}
}

C#多态及接口的更多相关文章

  1. java匿名内部类,多态,接口练习

    1多态以及接口调用方法: public class Interface { public static void main(String[] args) { Al x = new Al(); jian ...

  2. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  3. java基础三 [深入多态,接口和多态](阅读Head First Java记录)

    抽象类和抽象方法 1.抽象类的声明方法,在前面加上抽象类的关键词abstract abstract class canine extends animal{      public void roam ...

  4. Java基础第二天--多态、接口

    多态 多态的概述 同一个对象,在不同时刻表现出来的不同形态 多态的前提和体现 有继承/实现关系 有方法重写关系 有父类引用指向子类对象 public class Animal { public voi ...

  5. C# 多态和接口

    1多态可以有属性,接口只有方法 2关键字不同,多态有静态多态(abstract)和动态多态(virtual),静态多态不能new()出自己,动态多态可以;多态中可以有自己的方法可设置不需要子类重写,接 ...

  6. java 面向对象面试题,问答题,构造方法,抽象类,继承,多态,接口,异常总结;

    一,构造方法的特点 面向对象的思想是如何在java展现的呢? 就是通过类和对象 类是一组相关的属性和行为的集合.是一个抽象的概念. 对象是该类事物的具体表现形式.具体存在的个体. 一.抽象类的抽象方法 ...

  7. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  8. 多态and接口

    一.多态 1.什么是多态? 解析:不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2.使用多态的优点 解析:为了实现统一调用 一个小例子:<父类类型作为参数> 父类 ...

  9. 初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

    JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM, ...

  10. Java中关于继承、类、多态、接口的知识点

    继承 含义:在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类 优点:1)代码的重用性:2)子类扩展父类的属性和方法:3)父类的属性和方法可用于子类:4)设计应用程序 ...

随机推荐

  1. 微信小程序支付,带java源码

    先说下这个的背景吧... 本人是做java后端的,自认为还有很大的发展空间(嘻嘻,你懂的),看过一段时间的小程序可是没有支付成功...最近公司要做小程序项目,老大让我看下小程序,折腾了好几天,参照着h ...

  2. Bootstrap日期和时间表单组件

    http://www.bootcss.com/p/bootstrap-datetimepicker/ 项目 MarketPoint

  3. mysql 有没有参数都报错“mysql: unknown option”

    报错: [root@XXXX tmp]# mysql -uroot -pmysql: unknown option '--You have new mail in /var/spool/mail/ro ...

  4. ASP.NET Core 微服务初探[1]:服务发现之Consul

    ASP.NET Core 微服务初探[1]:服务发现之Consul   在传统单体架构中,由于应用动态性不强,不会频繁的更新和发布,也不会进行自动伸缩,我们通常将所有的服务地址都直接写在项目的配置文件 ...

  5. Google Chrome等浏览器不允许关闭点击跟踪??

    hrome.Safari.Opera 和 Microsoft Edge 的新版本将不再允许用户关闭“链接审计( hyperlink auditing)”的功能.链接审计是一项 HTML 标准,被用于跟 ...

  6. MongoDB install

    下载地址1:https://www.mongodb.org/dl/linux下载地址2:https://www.mongodb.com/download-center/community关于Mongo ...

  7. 读书笔记---<<图解HTTP>>(一)

    一.了解Web及网络基础 1. 网络基础TCP/IP 通常使用的网络包括互联网都是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集. 1.1 TCP/IP协议族 像这样吧与互联网关联 ...

  8. InetAddress类和InetSocketAddress类

    InetAddress 类 封装计算机的 IP 地址,不包含端口号 InetAddress 类常用的方法 1 String getHostAddress() 获得 IP 地址 2 String get ...

  9. AWT的应用

    AWT(Abstract Window TookIT)是java用于创建用户界面和绘制图形的所有类 AWT组件和容器 AWT包含了很多类和接口,用于java Application的GUI(图形用户界 ...

  10. 使用.net core搭建文件服务器

    标题之所以带上.net core,而不是.net就是由于两者在类库的使用以及部署环境有很大的差别,所以特此说明. 长话短说,直接开始! 1.新建一个.net core项目,版本是2.0,为了方便就建一 ...