- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
27.抽象类的定义及的使用
课程名称:抽象类的定义接使用知识点2.1、上次课程的主要知识点对象多态性对象如下:向上转型(90%):为了实现参数类型的统一,但是向上转型一定要与方法覆写产生关联。向下转型(1%):为了调用子类特殊方法实现,但是向下转型前首先发生向上转型,会存在操作的安全隐患,可以使用instanceof进行判断,但是不推荐这 样使用。不转型(9%):为了操作方便直接使用系统类或者是一些功能类,例如:String、简单的java类。2.2、本次预计讲解的知识点1、抽象类的基本定义;2、抽象类的使用原则;3、具体内容( )不会抽象类与接口,java=没学。3.1、抽象类的基本概念如果说现在在 一个类中需要定义一 个没有方法体的 方法,那么可以利用abstract关键字了来进行抽象方法定义,而包含有抽象方法的类就可以使用abstract来定义成为抽象类。类的核心组成:属性、方法,但在学习完继承操作之后,会发现子类存在一 种覆写父类方法的机制,而且这一机制直接与对象的多态性有关。于是这样就会出现一个问题:假设现在使用的是普通类,并且在这个类里面有一个print()方法。方法print();class A{public void print(){ System.out.println(Hello World!);}}但是这个A类在设计之初有一个要求,希望继承它的子类一定要覆写这个print()方法。但事实上这个时候的子类完全可以灵活的选择是否需要覆写方法。但是由于只是一个普通方法,所以对于子类是否覆写没有任何的要求。于是这样就会出一人漏洞。父类无法要求子类覆写方法。如果只依靠普通类的继承,那么根本就不能够对子类产生限制,所以就可以利用抽象类和抽象方法来解决此类问题。范例:定义抽象类abstract class A{public void fun(){System.out.println(*******************************);}public abstract void print();//没有方法体,使用abstract声明}抽象方法的特点:一个是使用了abstract关键字定义,另外一个是方法的后面没有”{}”,表示没有方法体。范例:直接错误的使用抽象类public class TestDemo{public static void main(String args[]){ A a = new A();}}本处直接采用了关键字new实例化了抽象类对象,但是在程序编译的时候就会出现如下的错误提示信息。抽象类是不能直接进行对象实例化操作的。因为类的对象一旦实例化了,就意味着可以调用类中的所有方法了,但是抽象方法只是一个声明,并没有具体的方法体。所在实际的开发之中,对于抽象类的使用原则如下:抽象类必须有子类,子类利用extends关键字来继承抽象类,一个子类只能继承一个父类;抽像类的子类(如果不是抽象类),那么必须要覆写抽象类中的全部抽象方法。抽象类可以利用对象的向上转型机制,通过子类对象进行实例操作。abstract class A{public void fun(){System.out.println(*******************************);}public abstract void print();//没有方法体,使用abstract声明}class B extends A{ public void print(){ System.out.println(这个方法是强制子类要覆写的方法); }}public class TestDemo{public static void main(String args[]){ A a = new B();//向上转型a.print();//被子类所覆写过的方法}}抽象类与普通类相比最大的好处是强制定义了子类的实现要求,本质上讲抽象类就是比普通类多了一些抽象方法的定义而已。在实际的设计之中,父类的设计是最重要的,普通类与抽象类相比,明显抽象类的约束更加严格。所以在实际 的开发之中,几乎不会出现普通类定义子类的情况,大多数都继承抽象类。3.2、抽象类的相关说明整个的设计结结构里面多了抽象类的定义,那么多了 一个定义之后,就需要与原始结构有一些对比。抽象类不 能使用final关键字定义,因为抽象类必须有子类,而final不能子类;抽象类就是比普能类多了抽象方法而已,但是普通类中的所有结构抽象类都类都可以定义,包括:普通方法、构造方法、属性、常量等内容,而且子类对象那个也符合于对象实例化流程,默认先调用父类中的无参构造方法,而后再执行自己的子类构造abstract class A{public static final String INFO=HELLO; pub
您可能关注的文档
- 2017的年河南对口升学计算机类基础课试题.pdf
- 2017的春人教版《道德与法治》七下 课件第三单元 在集体中成长 第六课 “我和我们” 第1课时集体生活邀请我.ppt
- 2017的朝阳二模.pdf
- 2017苏州合伙企业注的册设立登记费用流程及时间.docx
- 2017职称英语(理工类的A级)赠品一:考前模拟试卷.pdf
- 2017级高一(的4)班养成教育主题班会.ppt
- 2017虹口高三数学的一模.doc
- 2017西城中考一模物理试题及答案word版可的编辑.doc
- 2017的建设工程质量与安.pptx
- 2017高三一轮复的习-排列与组合.docx
- 中国国家标准 GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- 《GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地》.pdf
- 苏教版(2017秋)科学三年级下册1.《种子发芽了》 教案(含课堂练习和反思).docx
- 2024-2025学年小学数学六年级上册冀教版(2024)教学设计合集.docx
- 地理商务星球版七年级上册4.5形成气候的主要因素 同步教案.docx
- 2024-2025学年中职中职专业课金融类73 财经商贸大类教学设计合集.docx
- 2024-2025学年初中地理七年级上册(2024)仁爱科普版(2024)教学设计合集.docx
- 2024-2025学年小学英语二年级上册外研版(一起)教学设计合集.docx
- 2024-2025学年高中数学选择性必修 第二册北师大版(2019)教学设计合集.docx
文档评论(0)