C#中的抽象类和接口
来源:互联网 发布:朗文和牛津 知乎 编辑:程序博客网 时间:2024/05/22 10:46
定义一个类时,通常需要定义一些方法来描述这个类的行为特征,但比如定义动物类时,叫shou()方法针对每个动物不同叫声也不同,因此shou()方法无法准确的描述动物的叫声。当这种情况出现时,C#允许在定义方法时不写方法体,即抽象方法(用abstract关键字定义)
定义抽象类
- 抽象方法的类必为抽象类,但抽象类可以没有抽象方法。
- 抽象类不可以实例化,如想调用抽象类中定义的方法,则需创建子类,在其中实现抽象类的抽象方法。
public abstract void shot()
}
class dog:animal{
public override void shot()
{
c.w("汪汪汪");
}
}
class cat:animal{
public override void shot()
{
c.w(“喵喵喵”);
}
}
Main(){
Dog dog =new Dog();
dog.shot();
Cat cat=new Cat();
cat.shot();
c.k();
}
子类通过override关键字实现了父类animal的抽象方法后,可以正常实例化,并通过实例化对象调用父类的shot()方法。
如果一个抽象类中的所有方法都是抽象方法,这个抽象类定义为接口。
在显示生活中,我们的电脑可以读取U盘,硬盘,和MP3,是因为他们都有一个相同的Read()方法,USB调用Read()方法方法读取。USB接口其实就是一个协议,哪些硬件遵循协议,那么插在主板上这些引发件都快可以读取出数据。
接口
使用interface关键字定义
接口定义一组成员但是不直接实现他们(在接口中定义的成员就跟我们刚刚所提到的协议很相似)
interface animal{
void cat();
void dog();
}
animal即为接口。
cat,dog()方法 无方法体
无访问修饰符
在接口中定义方法:
1.不能添加访问修饰符,访问权限默认都是public(我们就不能添加了,public也不能写,所以我们就直接 返回值 方法名)
2.抽象方法(接口)不能实例化——因此要定义一个子类中定义一个方法输出,在Main()中实例化并调用 实现接口中所有的方法。
3.一个类中可以实现多个接口,被实现的多个接口之间要用逗号隔开。
interface run(){}
interface fly(){}
class bird:run,fly{}
4。一个接口可以继承多个接口,接口之间用逗号隔开
interface run(){}
interface fly(){}
interface bird:run,fly{}
- c#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- C#中的继承 (继承、抽象类和抽象方法、接口)
- C#中的继承 (继承、抽象类和抽象方法、接口)
- 抽象类和接口在C#中的区别和使用
- C#中的接口和抽象类的比较
- C#中的两把双刃剑:抽象类和接口
- C#中的两把双刃剑:抽象类和接口
- c# 抽象类和接口
- C# 抽象类和接口
- c#接口和抽象类
- C#抽象类和接口
- C#抽象类和接口
- C#接口和抽象类
- C#抽象类和接口
- (Unity 编辑器扩充(一))右键设置父节点
- robotframework自动化测试安装配置
- Android仿IOS的AssistiveTouch的控件EasyTouch实现
- react-native--手绘直线(手势)
- 手机拍照或者相册获取图片总结
- C#中的抽象类和接口
- 首篇博客小记
- Android开发-如何快速实现分享功能
- 20161208 JS计时器和CSS3旋转属性闹钟
- Python/Java中文乱码的问题
- 微信小程序学习笔记(5)--------框架之视图层
- CSS经典BUG
- Android stuido 中的keystore
- VS调试C#程序产生的dump