欢迎来到天天文库
浏览记录
ID:43515749
大小:837.29 KB
页数:26页
时间:2019-10-09
《C#新课件第十讲》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C#语言编程第十讲:抽象类、静态类本章内容抽象类静态类一、抽象类练习用我们学过的知识,实现下面结构关系。练习classPlayer{classMainClasspublicvirtualvoidPractice(){{publicstaticvoidMain(string[]args)Console.WriteLine("Player'sPractice!");{}Playerplayer=newFootBallPlayer();}player.Practice();//Playerplayer=newSwimmingPlayer();cla
2、ssFootBallPlayer:Player//Playerplayer=newRunnerPlayer();{}publicoverridevoidPractice()}{Console.WriteLine("FootPlayer'sPractice!");}}…………省略SwimmingPlayer和RunnerPlayer类抽象方法其实我可以发现,基类的训练方法只是起到了声明的作用,方法内部的语句,我们这里没有用到。像这样的方法,我们通常声明为抽象方法。抽象方法用abstract修饰的方法,称为抽象方法。publicabstractv
3、oidPractice();抽象方法是一种特殊的虚方法,它只起声明作用,所以只加一个“;”号,一定不能带实现部分。那什么时候去实现具体的方法呢?也就是什么时候去用override重写方法呢?我们会想到:继承抽象类谈到继承,我们立刻会想到类,因为类是继承的入口。含有抽象方法的类也必须用abstract修饰,我们称之为抽象类。abstractclassPlayer{publicabstractvoidPractice();}抽象类的用途:提供一个可供多个派生类共享的通用基类的定义。抽象类抽象类独立于抽象方法,也就是说没有抽象方法,类也可以声明为抽
4、象类,抽象类不能被直接实例化,其他跟普通类没有区别。abstractclassAnimal{intage;voidfunc(){Console.WriteLine("Animal'sfunction.");}}抽象类说明1.抽象类中如果有抽象方法,那么被继承的具体类一定要实现抽象类中得所有抽象方法。2.当然,如果是抽象类B继承抽象类A,那么抽象类B可以实现基类A中的抽象方法,可以不实现A中得抽象方法。抽象类abstractclassAclassC:B{{publicabstractvoidAFunction();publicoverridev
5、oidAFunction()}{Console.WriteLine("AFucntion.");abstractclassB:A}{publicoverridevoidBFunction()publicabstractvoidBFunction();{}Console.WriteLine("BFunction.");}}其实,这就是类(抽象类)的多态。总结1.抽象方法只作声明,而不包含实现,抽象方法旨在继承后实现,所以不能用private修饰。2.抽象类不能被直接实例化。3.抽象类可以没有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这
6、个类声明为抽象类。4.如果抽象类的派生类不是抽象类,那么必须重写抽象类的所有抽象方法。练习创建一个球的抽象类与其派生类篮球、足球和排球,自己创建3个抽象方法并进行重写。抽象方法VS虚方法1.抽象方法一定不能有实现,虚方法一定要有实现;2.抽象方法被具体类继承后,一定要被重写,虚方法可以不重写。3.抽象方法一种特殊的虚方法,一旦类中有抽象方法,则类必须声明为抽象类,抽象类中可以有虚方法。二、静态成员和静态类静态成员用static修饰的成员称为静态成员。classBeauty{//静态字段publicstaticstringfeature="美女
7、";//静态方法publicstaticvoidSpendMoney(){Console.WriteLine("买:衣服、包包、化妆品、鞋子。。。。");}}静态成员publicstaticvoidMain(string[]args){Beauty.SpendMoney();静态成员只能由类来调用stringname=Beauty.feature;}区分静态成员//静态字段publicstaticstringfeature="美女";//静态方法由类来调用publicstaticvoidSpendMoney(){Console.WriteLi
8、ne("买:衣服、包包、化妆品、鞋子。。。。");}//普通的方法和字段publicstringname;由对象来调用,如:publicvoidJob(){Beau
此文档下载收益归作者所有