蓝鸥Unity开发基础二——课时16 抽象类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝鸥Unity开发基础二——课时16 抽象类相关的知识,希望对你有一定的参考价值。
蓝鸥Unity开发基础二——课时16 抽象类
推荐视频讲师博客:http://11165165.blog.51cto.com/
抽象类
有时设计类仅仅为了表达抽象的概念,不与具体的事物相联系,只作为其派生类的基类使用,用来描述所有子类的共同特征,这时我们可以使用抽象类。
抽象类不能被直接实例化,抽象类中可以包含抽象方法
抽象类和抽象方法一起使用,它们都是C#语言中的一种新的特性。下面让我们用代码演示一下使用方式:
using System;
namespace Lesson_16
{
//抽象方法只能出现在抽象类中
public abstract class Food {
//抽象方法——需要添加abstract关键词
//在父类中定义的抽象方法不能够实现
public abstract void Eat();
}
public class Apple:Food{
//子类实现父类的抽象方法时,需要添加override
public override void Eat(){
Console.WriteLine ("HP+10");
}
}
class MainClass
{
public static void Main (string[] args)
{
Apple apple = new Apple ();
apple.Eat ();
}
}
}
抽象方法
抽象方法只声明不实现,但是在具体的子类中必须全部实现
抽象类中可以包含非抽象方法,抽象方法必须写在抽象类中
抽象方法不能使用Private方法修饰符修饰
using System;
namespace Lesson_16
{
//抽象方法只能出现在抽象类中
//抽象类不能够直接实例化——new一个Food
public abstract class Food {
//抽象方法——需要添加abstract关键词
//1、在父类中定义的抽象方法不能够实现
public abstract void Eat();
//抽象类中可以包含普通的方法
public void Test(){
Console.WriteLine ("Test");
}
}
public class Apple:Food{
//2、子类实现父类的抽象方法时,需要添加override
public override void Eat(){
Console.WriteLine ("HP+10");
}
}
public class Water:Food{
public override void Eat(){
Console.WriteLine ("MP+10");
}
}
class MainClass
{
public static void Main (string[] args)
{
// Apple apple = new Apple ();
// apple.Eat ();
//多态,之后会进行讲解
Food f1=new Apple();
Food f2 = new Water ();
f1.Eat ();
f2.Eat ();
//普通方法调用
f1.Test ();
}
}
}
练习:创建一个球的抽象类,并且创建篮球,足球和排球派生类,自己创建3个抽象方法并在子类中重写。
以上是关于蓝鸥Unity开发基础二——课时16 抽象类的主要内容,如果未能解决你的问题,请参考以下文章