美文网首页
【蓝鸥AR/VR开发基础二】 抽象类

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

作者: 蓝鸥3G | 来源:发表于2016-09-09 17:40 被阅读0次

    蓝鸥(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个抽象方法并在子类中重写。

    相关文章

      网友评论

          本文标题:【蓝鸥AR/VR开发基础二】 抽象类

          本文链接:https://www.haomeiwen.com/subject/eraeettx.html