【蓝鸥AR/VR开发基础二】 抽象类

蓝鸥(www.lanou3g.com)是一家集产、学、研、创为一体的综合性移动互联网研发培训机构,致力于iOS开发、Unity3D游戏开发、Android开发、HTML5前端开发和Web安全攻防等技术人才的培养。

抽象类

有时设计类仅仅为了表达抽象的概念,不与具体的事物相联系,只作为其派生类的基类使用,用来描述所有子类的共同特征,这时我们可以使用抽象类。

抽象类不能被直接实例化,抽象类中可以包含抽象方法

抽象类和抽象方法一起使用,它们都是C#语言中的一种新的特性。下面让我们用代码演示一下使用方式:

usingSystem;

namespaceLesson_16

{

//抽象方法只能出现在抽象类中

publicabstractclassFood{

//抽象方法——需要添加abstract关键词

//在父类中定义的抽象方法不能够实现

publicabstractvoidEat();

}

publicclassApple:Food{

//子类实现父类的抽象方法时,需要添加override

publicoverridevoidEat(){

Console.WriteLine("HP+10");

}

}

classMainClass

{

publicstaticvoidMain(string[]args)

{

Appleapple=newApple();

apple.Eat();

}

}

}

抽象方法

抽象方法只声明不实现,但是在具体的子类中必须全部实现

抽象类中可以包含非抽象方法,抽象方法必须写在抽象类中

抽象方法不能使用Private方法修饰符修饰

usingSystem;

namespaceLesson_16

{

//抽象方法只能出现在抽象类中

//抽象类不能够直接实例化——new一个Food

publicabstractclassFood{

//抽象方法——需要添加abstract关键词

//1、在父类中定义的抽象方法不能够实现

publicabstractvoidEat();

//抽象类中可以包含普通的方法

publicvoidTest(){

Console.WriteLine("Test");

}

}

publicclassApple:Food{

//2、子类实现父类的抽象方法时,需要添加override

publicoverridevoidEat(){

Console.WriteLine("HP+10");

}

}

publicclassWater:Food{

publicoverridevoidEat(){

Console.WriteLine("MP+10");

}

}

classMainClass

{

publicstaticvoidMain(string[]args)

{

//Appleapple=newApple();

//apple.Eat();

//多态,之后会进行讲解

Foodf1=newApple();

Foodf2=newWater();

f1.Eat();

f2.Eat();

//普通方法调用

f1.Test();

}

}

}

练习:创建一个球的抽象类,并且创建篮球,足球和排球派生类,自己创建3个抽象方法并在子类中重写。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容