Java面向对象程序设计(二)

Java面向对象程序设计(二)

ID:36841371

大小:552.50 KB

页数:53页

时间:2019-05-10

Java面向对象程序设计(二)_第1页
Java面向对象程序设计(二)_第2页
Java面向对象程序设计(二)_第3页
Java面向对象程序设计(二)_第4页
Java面向对象程序设计(二)_第5页
资源描述:

《Java面向对象程序设计(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5讲Java面向对象程序设计(二)2021/8/271本讲内容4.3抽象类与接口4.4包4.5内部类和匿名类24.3抽象类与接口4.3.1抽象类抽象类的定义抽象类的作用31.抽象类的定义在定义类时,前面再加上一个关键词abstract,这样的类就被定义成抽象类。抽象类的定义如下:[]abstractclass{}modifiers——为修饰符,访问限制修饰符可以为public,或者什么都不写,如果抽象类定义成public时,则文件名要与类的名字完全相同。abstractcl

2、ass——抽象类。class_name——类名,符合Java标识符定义规则即可。41.抽象类的定义抽象类不能实例化,即不能产生抽象类的对象。在抽象类中可以定义抽象方法,抽象方法也是用关键词abstract来标识。抽象方法的语法格式为:abstractmethodName([param_list]);在抽象方法中只包含方法的声明部分,而不包含方法的实现部分。5abstractclassStudent{abstractvoidisPassed(){};}publicclassAbstractClass

3、Test{publicstaticvoidmain(String[]args){Students;s=newStudent();}}编译错误!!编译错误!!61.抽象类的定义抽象类中可以有抽象方法,也可以有非抽象方法。如果一个类中所有的方法都是非抽象方法,这样的类也可以定义成抽象类。一个类中如果有一个方法是抽象方法,则该类必须声明为抽象类,否则会出现编译错误。当一个类继承抽象类时,一定要实现抽象类中的所有抽象方法,否则该类为抽象类。7//抽象类AbstractClass1中有两个抽象方法abstractclassAbst

4、ractClass1{abstractvoidamethod1();abstractvoidamethod2();}//继承抽象类AbstractClass1,但没实现其抽象方法,所以要定义成抽象类abstractclassAbstractClass2extendsAbstractClass1{}8classClass3extendsAbstractClass1{voidamethod1(){System.out.println("重写之后的amethod1方法。");}voidamethod2(){System.out

5、.println("重写之后的amethod2方法。");}}9publicclassAbstractClassExtendsTest{publicstaticvoidmain(String[]args){AbstractClass1c3=newClass3();c3.amethod1();c3.amethod2();}}重写之后的amethod1方法。重写之后的amethod2方法。102.抽象类的作用形成多态增强程序的可维护性11abstractclassShape{abstractdoublegetArea();a

6、bstractStringgetShapeInfo();}classTriangleextendsShape{doublea;doubleb;doublec;Triangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}12doublegetArea(){doublep=(a+b+c)/2;returnMath.sqrt(p*(p-a)*(p-b)*(p-c));}StringgetShapeInfo(){return"Triangle:";}}13class

7、RectangleextendsShape{doublea;doubleb;Rectangle(doublea,doubleb){this.a=a;this.b=b;}doublegetArea(){returna*b;}StringgetShapeInfo(){return"Rectangle:";}}14publicclassAbstractOverridingTest{publicvoidprintArea(Shapes){System.out.println(s.getShapeInfo()+s.getArea(

8、));}publicstaticvoidmain(String[]args){AbstractOverridingTestaot=newabstractOverridingTest();Shapes=newTriangle(3,4,5);aot.printArea(s);s=newRectangle(5,6);aot

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。