本文主要是介绍抽象类与抽象函数+接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
抽象类与抽象函数
什么是抽象方法
抽象方法是没有实现代码的虚方法
抽象方法使用abstract修饰符进行声明,只能在同样声明了abstract的类中使用。
继承了抽象类的子类必须实现抽象类的所有抽象方法。
什么是抽象类
用abstract修饰过的类是抽象类
抽象类无法被实例化
子类如果继承自抽象类,那么子类必须实现abstract类中所有的abstract成员
如果你的父类需要实例化,且需要实现方法,用虚方法。
如果你的父类不需要实例化,也不需要实现方法,用抽象类和抽象方法;
格式实例:
abstract class Graph{public abstract void GetArea();public abstract void GetPerimeter();}class Rect : Graph{public float width;public float height;public override void GetArea(){Console.WriteLine("此矩形的面积为:"+(width*height));}public override void GetPerimeter(){Console.WriteLine("此矩形的周长为:"+(width+height)*2);}}class Circle : Graph{public float radius; public override void GetArea(){float area=(float)Math.PI*radius*radius;Console.WriteLine("此圆的面积为:" + area);}public override void GetPerimeter(){float perimeter = (float)Math.PI * radius * 2;Console.WriteLine("此圆的周长为:" + perimeter);}}class Test1{static void Main(string[] args){Circle c = new Circle();c.radius= 10;Rect r= new Rect();r.height = 12;r.width=6;c.GetArea();r.GetArea();c.GetPerimeter();r.GetPerimeter();}}
运行结果为:
接口
接口定义了可由类和结构实现的协定。
接口可以包含方法,属性,事件和索引器
接口不提供所定义的成员的实现代码,仅指定必须由实现接口的类或结果提供的成员,因此接口在声明是不能具体实现,他只能通过及城市了他的类的成员实现。接口是多重继承的,一个接口可以继承另一个接口或者多个接口,一个类可以继承一个或者多个接口。
接口的优势
多继承,可以让类更灵活,并在减少代码重复的情况下降低代码关联性(耦合)
多态:程序可扩展性,节约成本,提高效率。
接口的声明
访问修饰符 interface 接口名{属性方法
}
接口的声明与类基本一致。
接口的方法和属性均允许实现 。
接口不能有构造,不能有字段。
不能重载运算符。
接口中成员必须为Public。
接口取名,前面必须要加大写的I。
接口的使用
访问修饰符 类名:基类,接口名,接口名{属性方法
}
继承关系中如果有类必须是第一个。
继承了接口的类必须实现该接口的所有成员。
接口可以继承接口 。
接口的显示实现
当我们的类继承了多个接口,有可能会有重名的成员,这个时候可以使用显示实现来区别不同接口的成员
接口名.成员名{}
该系列专栏为网课课程笔记,仅用于学习参考。
这篇关于抽象类与抽象函数+接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!