抽象类与抽象函数+接口

海哥  金牌会员 | 2024-8-22 13:09:57 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 535|帖子 535|积分 1605

抽象类与抽象函数

什么是抽象方法

抽象方法是没有实现代码的虚方法
抽象方法使用abstract修饰符进行声明,只能在同样声明了abstract的类中使用。
继续了抽象类的子类必须实现抽象类的所有抽象方法。
什么是抽象类

用abstract修饰过的类是抽象类
抽象类无法被实例化
子类假如继续自抽象类,那么子类必须实现abstract类中所有的abstract成员
假如你的父类需要实例化,且需要实现方法,用虚方法。
假如你的父类不需要实例化,也不需要实现方法,用抽象类和抽象方法;
格式实例:
  1.     abstract class Graph
  2.     {
  3.         public abstract void GetArea();
  4.         public abstract void GetPerimeter();
  5.     }
  6.     class Rect : Graph
  7.     {
  8.         public float width;
  9.         public float height;
  10.         public override void GetArea()
  11.         {
  12.             Console.WriteLine("此矩形的面积为:"+(width*height));
  13.         }
  14.         public override void GetPerimeter()
  15.         {
  16.             Console.WriteLine("此矩形的周长为:"+(width+height)*2);
  17.         }
  18.     }
  19.     class Circle : Graph
  20.     {
  21.         public float radius;   
  22.         public override void GetArea()
  23.         {
  24.             float area=(float)Math.PI*radius*radius;
  25.             Console.WriteLine("此圆的面积为:" + area);
  26.         }
  27.         public override void GetPerimeter()
  28.         {
  29.             float perimeter = (float)Math.PI * radius * 2;
  30.             Console.WriteLine("此圆的周长为:" + perimeter);
  31.         }
  32.     }
  33.     class Test1{
  34.         static void Main(string[] args)
  35.         {
  36.             Circle c = new Circle();
  37.             c.radius= 10;
  38.             Rect r= new Rect();
  39.             r.height = 12;
  40.             r.width=6;
  41.             c.GetArea();
  42.             r.GetArea();
  43.             
  44.             c.GetPerimeter();
  45.             r.GetPerimeter();
  46.         }
  47.     }
复制代码
运行效果为: 

接口 

 接口定义了可由类和结构实现的协定。
接口可以包含方法,属性,事件和索引器
接口不提供所定义的成员的实现代码,仅指定必须由实现接口的类或效果提供的成员,因此接口在声明是不能具体实现,他只能通过及都会了他的类的成员实现。接口是多重继续的,一个接口可以继续另一个接口或者多个接口,一个类可以继续一个或者多个接口。
接口的上风

多继续,可以让类更机动,并在减少代码重复的环境下低落代码关联性(耦合)
多态:步伐可扩展性,节约本钱,提高服从。
接口的声明

  1. 访问修饰符 interface 接口名{
  2.     属性
  3.     方法
  4. }
复制代码
接口的声明与类根本一致。
接口的方法和属性均允许实现 。
接口不能有构造,不能有字段。
不能重载运算符。
接口中成员必须为Public。
接口取名,前面必须要加大写的I。
接口的使用

  1. 访问修饰符 类名:基类,接口名,接口名{
  2.     属性
  3.     方法
  4. }
复制代码
继续关系中假如有类必须是第一个。
继续了接口的类必须实现该接口的所有成员。
接口可以继续接口 。
接口的显示实现

当我们的类继续了多个接口,有大概会有重名的成员,这个时候可以使用显示实现来区别不同接口的成员
接口名.成员名{}


该系列专栏为网课课程笔记,仅用于学习参考。 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表