C#使用 new 关键字创建对象 IMap newMap = new MapClass();
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#使用 new 关键字创建对象 IMap newMap = new MapClass();相关的知识,希望对你有一定的参考价值。
我以前使用C#做MIS程序,都是类似于 X p = new X();类型的,即就是一个X类型的变量,因为前后都是X。 而在IMap newMap = new MapClass();中,前后两个类名称不一样了,那么这个对象newMap到底是那个类的对象?这两个类(IMap、MapClass)满足什么关系才能这样定义呢? 是不是派生的关系?很糊涂,希望高手指点迷津啊
参考技术A new什么就是生成的什么类。子类可以隐式转换为父类(这里还包括子类所实现的接口)。本回答被提问者采纳 参考技术B 将arcgis引用的类,嵌入设置为false
C#特性: 类
1、使用class 关键字可以声明类
public class MyClass { //可在内部申明一些字段、方法或属性 }
2、类(Class) 是引用类型,默认为null,可用new创建
MyClass myClass1; //默认是 null MyClass myClass2 = new MyClass(); //可用 new 创建一个对象 MyClass myClass3 = myClass2; //也可直接将已创建的对象,直接赋值到当前对象
3、类可以继承,被继承的类称为基类(或父类),当前类称为子类(或派生类),通过在派生类后加 冒号 : 和 基类名称实现
/// <summary> /// NextClass为基类MyClass的派生类 /// </summary> public class NextClass : MyClass { //NextClass 可以继承使用MyClass 中的字段、方法和属性 //也可以在NextClass内部创建新的字段、方法和属性 }
注意:被 sealed 修饰的类,不能用于继承
4、类可以申明为 abstract (抽象类)抽象类包含抽象方法,抽象方法包含签名定义但不包含实现。 抽象类不能实例化。 只能通过可实现抽象方法的派生类来使用该类。
/// <summary> /// 抽象类 - Animal /// </summary> public abstract class Animal { /// <summary> /// 申明一个抽象方法,不需要具体实现内容 /// </summary> public abstract void ShowName(); /// <summary> /// 申明一个虚方法,需要具体实现,可以在派生类中重写 /// </summary> public virtual void ShowFood() { Console.WriteLine("this is my food"); } }
/// <summary> /// 派生类 - Dog /// </summary> public class Dog : Animal { /// <summary> /// 在派生类中实现方法内容 /// </summary> public override void ShowName() { Console.WriteLine("this is a dog"); } /// <summary> /// 在派生类帐重载方法 /// </summary> public override void ShowFood() { base.ShowFood(); //可以通过调用base保留基类的处理 Console.WriteLine("I eat meat"); } }
5、类可以通过修饰符 partial 进行拆分
//第一部分,申明一个ShowName的方法 public partial class Monkey { public void ShowName() { Console.WriteLine("this is a monkey"); } }
//第二部分,申明一个ShowFood的方法 public partial class Monkey { public void ShowFood() { Console.WriteLine("I eat banana"); } }
//实际使用的时候,两个方法都可以进行调用 Monkey monkey = new Monkey(); monkey.ShowName(); monkey.ShowFood();
以上是关于C#使用 new 关键字创建对象 IMap newMap = new MapClass();的主要内容,如果未能解决你的问题,请参考以下文章