东营网站建设优化如何把自己网站推广出去
news/
2025/9/24 3:45:40/
文章来源:
东营网站建设优化,如何把自己网站推广出去,网站升级的内容包括哪些,北京工装设计公司排名文章目录 一、抽象类和接口总结总结补充说明主要区别 二、抽象类2.1 抽象类概述与声明2.2 抽象方法2.3 抽象类与抽象方法的使用 三、接口3.1 接口概述概述特征声明示例 3.2 接口的实现和继承说明示例 3.3 显式接口成员实现说明注意示例 一、抽象类和接口总结
总结
抽象类和接… 文章目录 一、抽象类和接口总结总结补充说明主要区别 二、抽象类2.1 抽象类概述与声明2.2 抽象方法2.3 抽象类与抽象方法的使用 三、接口3.1 接口概述概述特征声明示例 3.2 接口的实现和继承说明示例 3.3 显式接口成员实现说明注意示例 一、抽象类和接口总结
总结
抽象类和接口这两种类型用于完全不同的目的。抽象类主要用作对象的基类贡献某些主要的特性例如共同的目的和结构。 接口则主要是用于类为这些类去添加不同的方法行为。
补充说明
抽象类和接口都包含可以由派生类继承的成员他们都能直接实例化但可以声明他们的变量 这样做可以使用多态性把继承这两种类型的对象指定给他们的变量 接着通过这些变量来使用这些类型的成员但不能直接访问派生类中的其他成员【如上述例子】
主要区别
1、他们的派生类只能继承一个基类即只能直接继承一个抽象类但可以继承任意多个接口 2、抽象类中可以定义成员的实现但接口中不可以 3、抽象类中可以包含字段、构造函数、析构函数、静态成员或常量等接口中不可以 4、抽象类中的成员可以是私有的只要他们不是抽象的、受保护的、内部的或受保护的内部成员受保护的内部成员只能在应用程序的代码或派生类中访问但接口中的成员必须是公共的。
二、抽象类
2.1 抽象类概述与声明
一般将父类定义为抽象类需要使用这个父类进行多态与继承。 继承树中越是向上类就越发抽象例如奔驰继承汽车类汽车类继承交通工具类等。
声明使用abstract关键字
访问修饰符 abstract class 类名基类或接口
{
}声明抽象类
public abstract class myClass
{public int i;public void func(){ }
}声明抽象类时abstract、class和类名外是必须的其余可选
2.2 抽象方法
抽象方法没有方法体这个方法本身没有任何意义需要被继承的类进行重写。 如果一个类中有抽象方法那么这个类就需要被标记为抽象类。
抽象方法必须声明在抽象类中。 声明抽象方法时不能使用virtual、static、private修饰符。
抽象方法声明引入了一个新方法不提供方法的实现因此方法体只包含一个分号。 当从抽象类的派生一个非抽象类时需要在非抽象类中重写抽象方法以提供具体的实现重写抽象方法时使用override关键字。
声明使用使用abstract关键字
public abstract class myClass
{public int i;public void func(){ }//声明抽象方法public abstract void method();
}2.3 抽象类与抽象方法的使用
//声明抽象类abstract class MyClass{private string name;private int age;public string Name{get { return name; }set { name value; }}public int Age{get { return age; }set { age value; }}//抽象方法public abstract void showInfo();}//继承抽象类class SonClass : MyClass{//重写抽象方法public override void showInfo(){Console.WriteLine($My name is:{this.Name},I am {this.Age} years old.);}}internal class Program{static void Main(string[] args){SonClass sonClass new SonClass(); //实例化派生类MyClass son sonClass; //使用派生类实例化抽象类son.Age 10;son.Name Nick;son.showInfo();Console.ReadLine();}}运行结果
三、接口
3.1 接口概述
概述
由于C#中是单继承但客观世界中出现多重继承的情况比较多因此通过接口实现多重继承的功能。 接口是抽象类的延申可以视作纯粹的抽象类其中的所有方法都没有方法体。 接口用来定义程序的协议描述可属于任何类或结构的一组相关行为。 接口可由 方法、属性、事件、索引器 4种成员类型的任何组合构成但不能包含字段。 类和结构可以继承多个接口接口也可以继承其他的接口。
特征
接口可以将方法、属性、索引器、事件作为成员但不能给这些成员设置具体的值。 特征 类似于抽象基类继承接口的任何非抽象类型都必须实现接口的所有成员。 不能直接实例化接口。 接口可以包含事件、索引器、方法和属性。 接口不包含方法的实现。 类和结构可从多个接口继承。 接口自身可从多个接口继承。
声明
使用interface关键字语法格式如下
修饰符 interface 接口名称:继承的接口列表
{接口内容
}声明接口时除interface关键字和接口名称外其他的都是可选项 可使用new、public、protected、internal、private等修饰符声明接口但接口成员必须是公开的。
示例
interface ImyInterface
{string ID //编号可读可写{get;set;}string Name //姓名可读可写{get;set;}void ShowInfo(); //显式定义的编号和姓名
}3.2 接口的实现和继承
说明
实现接口成员类中对应的成员必须是公共的、非静态的并且与接口成员具有相同的名称和签名。 类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器例如接口定义一个带有get的访问器属性而实现该接口的类可以声明同时带有get和set访问器的同意属性但是如果属性或索引器使用 显示 实现则访问器必须匹配。
接口的实现通过类继承实现。声明实现接口的类时需要在基类列表中包含所实现的接口的名称。
示例 interface ITest1{void Test1();}interface ITest2:ITest1{void Test2();}class TestClass : ITest2{public void Test1(){Console.WriteLine(ITest1接口的Test1()方法);}public void Test2(){Console.WriteLine(ITest2接口的Test2()方法);}}3.3 显式接口成员实现
说明
如果类实现两个接口并且两个接口包含具有相同签名的成员那么在类中实现该成员将导致两个接口都使用该成员作为他们的实现。 这样可能会导致接口实现的不正确因此需要显示实现接口成员即创建一个仅通过该接口调用并且特定于该接口的类成员。 显示接口实现是通过 使用 接口名称和一个句点 命名该类成员来进行实现。
注意
显示接口成员实现中 不能包含 访问修饰符、abstract、virtual、override或static修饰符。 显示接口成员属于接口的成员而不是类的成员你因此不能使用类对象直接访问只能通过接口对象来访问。
示例 interface ImyInterface1{int Add();}interface ImyInterface2{int Add();}class My_Class : ImyInterface1, ImyInterface2{int ImyInterface2.Add() { return 1; }int ImyInterface1.Add() { return 0; }}internal class Program{static void Main(string[] args){My_Class myClass new My_Class();//myClass对象中不包含Add方法只能通过实例化接口对象来调用Add方法ImyInterface1 imyInterface1 myClass;Console.WriteLine($调用接口ImyInterface1 中的Add方法结果为 {imyInterface1.Add()});//将myClass作为ImyInterface2来调用其中的Add()方法Console.WriteLine($调用接口ImyInterface2 中的Add方法结果为 {(myClass as ImyInterface2).Add()});Console.ReadLine();}}运行结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914755.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!