抽象方法、抽象类与接口_第1页
抽象方法、抽象类与接口_第2页
抽象方法、抽象类与接口_第3页
抽象方法、抽象类与接口_第4页
抽象方法、抽象类与接口_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

抽象方法、抽象类与接口抽象方法抽象类接口.抽象方法

——只有声明,没有实现的方法父类声明方法签名

(方法名、参数、返回类型、修饰符)子类重写次方法,并提供方法体实现包含抽象方法的类

叫做“抽象类”抽象类不能实例化

(不能newShape())抽象类也可以包含非抽象方法Shapeabstractdraw()Circledraw(){…}Rectangledraw(){…}.抽象方法的语法示例没有花括号方法体加“abstract”修饰符abstractclassShape{

abstractpublicvoiddraw()

;…}.抽象方法与多态Shapes;

s=newShape()//错误!s=newCircle();

s.draw();//画圆s=newRectrangle();

s.draw();//画矩形.接口(Interface)

——即纯抽象类,只有抽象方法,无其它实体方法接口与抽象类的区别:接口里面的方法必须全都是抽象的,而抽象类则不然。一个子类可实现(继承)多个接口,但最多只能继承一个类。Personvoidspeak(){..}妖abstrract

void妖法()classinterface人妖void妖法(){..}

//void仙法(){…}间接实现多继承.接口的实现(继承)一个子类可以实现多个接口子类必须实现接口中所有的abstract方法.实例–Animal抽象类abstractclassAnimal{//定义抽象类

Stringstr;Animal(Strings){//定义抽象类的一般方法

str=s;}abstractvoideat();//定义抽象方法}.实例-Horse子类classHorseextendsAnimal{//定义继承Animal的子类Stringstr;Horse(Strings){super(s);//调用父类的构造方法}voideat(){//重写父类的抽象方法System.out.println("马吃草料!");}}.实例-Dog子类classDogextendsAnimal{Stringstr;Dog(Strings){super(s);}voideat(){System.out.println("狗吃骨头!");}}.实例-Test测试classtest{publicstaticvoidmain(Stringargs[]){HorseHorse1=newHorse("马");DogDog1=newDog("狗");Horse1.eat();Dog1.eat();}}运行结果:马吃草料!狗吃骨头!.示例–驯化接口(Interface)publicinterface

Domestic{abstractvoid口令();

abstractvoid打招呼();

}}.实例-Dog子类classDogextendsAnimalimplementDomestic{Stringstr;Dog(Strings){super(s);}voideat(){System.out.println("狗吃骨头!");}

publicvoid口令(){…};

publicvoid打招呼(){…};}.实例-Test测试classtest{publicstaticvoidmain(Stringargs[]){Dom

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论