欢迎来到天天文库
浏览记录
ID:44229483
大小:346.75 KB
页数:22页
时间:2019-10-19
《java基础学习总结——抽象类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、java棊础学习总结抽象类一、抽象类介绍卜而通过一下的小程序深入理解抽象类因此在类Animal里面只需要定义这个enjoy()方法就可以了,使用abstract关键字把enjoy()方法定义成一个抽象方法,定义如下:publicabstractvoidenjoy();从某种意义上来说,抽象方法就是被用来重写的,所以在父类声明的抽象方法一定要在子类里面重写。如果真的不想在子类里面重写这个方法,那么可以再在了类里面把这个方法再定义为抽象方法,因为子类觉得我去实现也不合适,应该让继承我的子类去实现比较合适,
2、因此也可以在继承这个了类的下一个了类里面重写在父类里面声明的抽彖方法,这是可以的。这里冇一个规则:既然父类里面的方法是抽象的,那么对于整个类来说,它就冇一个没有实现的方法,这个方法不知道怎么去实现,那么这个类是就是残缺不全的,因此这个类应该被定义为一个抽象类。所以前血这样声明的声明的classAnimal应该要在class的前血加上abstract,即声明成这样:abstractclassAnimal,这样Animal类就成了一个抽象类了。Animal类的最终定义代码如下:复制代码2*父类Animal
3、3*在class的前面力口上abstract,即声明成这样:abstractclassAnimal4*这样Animal类就成了一个抽象类了5*/6abstractclassAnimal{77publicStringname;98publicAnimal(Stringname){121314151617181920}9this.name=name;*抽象方法*这里只有方法的定义,没有方法的实现。复制代码Java语言规定,当一个类里面有抽象方法的时候,这个类必须被声明为抽象类。子类继承父类时,如果这个父类
4、里曲有抽象方法,并且子类觉得可以去实现父类的所有-抽象方法,那么子类必须去实现父类的所有抽象方法,如:复制代码1/**2*子类Dog继承抽彖类Animal,并且实现了抽象方法enjoy3*@authorgacl4*5*/6classDogextendsAnimal{7891011121314151617181920/***Dog类添加自己特冇的属性*/publicStringfurColor;publicDog(Stringn,Stringc){super(n);//调用父类Animal的构造方法th
5、is.furColor=c;}@Overridepublicvoidenjoy(){System.out.println("狗叫}2122}复制代码这个父类里面的抽象方法,子类如果觉得实现不了,那么把就子类也声明成一个抽象类,如:复制代码]/**2*这里的子类Cat从抽象类Animal继承F來,白然也继承了Animal类里面声明的抽象方法enjoy(),3*但子类Cat觉得自己去实现这个enjoy()方法也不合适,因此它把它自己也声明成一个抽象的类,4*那么,谁去实现这个抽象的enjoy方法,谁继承了
6、子类,那谁就去实现这个抽象方法enjoy()o5*@authorgacl6*7*/8abstractclassCatextendsAnimal{911*Cat添加白己独有的属性12*/13publicStringeyeColor;1414publicCat(Stringn,Stringc){15super(n);//调用父类Animal的构造方法16this.eyeColor=c;17}19}复制代码这里的子类Cat从抽象类Animal继承下来,自然也继承了Animal类里面声明的抽象方法enjoy(
7、),但了类Cat觉得自己去实现这个enjoy()方法也不合适,因此它把它自己也声明成一个抽象的类,那么,谁去实现这个抽象的enjoy方法,谁继承了子类,那谁就去实现这个抽象方法enjoy()。如:复制代码1/**2*子类BlueCat继承抽象类Cat,并且实现了从父类Cat继承下來的抽象方法enjoy3*@authorgacl4*5*/7891011121314151617186classBlueCatextendsCat{publicBlueCat(Stringn,Stringc){super(n,
8、c);/***实现了抽象方法enjoy*/@Overridepublicvoidenjoy(){System.out.println("蓝猫叫・・・");}1920}复制代码完整的测试代码如卜•:复制代码1packagejavastudy.summary;2Q/**4*父类Animal5*在class的前面加上abstract,即声明成这样:abstractclassAnimal6*这样Animal类就成了一个抽象类了7*/8abstractclassA
此文档下载收益归作者所有