黑马程序员-java继承

黑马程序员-java继承

ID:43313193

大小:316.56 KB

页数:15页

时间:2019-09-29

黑马程序员-java继承_第1页
黑马程序员-java继承_第2页
黑马程序员-java继承_第3页
黑马程序员-java继承_第4页
黑马程序员-java继承_第5页
资源描述:

《黑马程序员-java继承》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、继承概述1、继承的优点:1)捉供了代码的复用性;2)让类与类Z间产生了关系。冇了这个关系,才冇了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间冇所属关系才可以继承。java只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类中宦义了和同方法,而方法内容不同时,子类对象不确定要运行哪个。但java保留了这种机制,并用另一种形式来表示:多实现。java支持多层继承,也就是-个继承体系。2、如何使用一个继承体系中的方法:先查阅体系父类的描述,因为父类中

2、定义的是该体系中共性方法。通过了解共性方法,就可以知道该体系的基本功能。然后,具体调用时创建最子类的对象。因为1)父类可能不能创建对象;2)子类对象可以使用更多的方法,包括基本的也包括特冇的。3、继承的原则:1)子类继承了其父类小不是私有的成员变量和成员方法,作为自己的成员变量和方法。2)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量被隐藏。3)子类中定义的成员方法,它的名字、返回类型及参数个数和类型都与父类中的某个成员方法完全相同时,则父类的成员方法彼覆盖。二、变量如果子类

3、中出现非私有的同名成员变呈时,子类要访问本类中的变量,用this语句;子类要访问父类中的同名变量,用super语句。例1:[java]viewplaincopyC1.classParent2.{3.inti=l;4・}5.classChildextendsParent6.{7・inti=2;8.publicintgetParent1()9・{10・returnsuper.i;//访问父类同名变虽11.}12.publicintgetChildI()13・{14.returnthis.i;//访问子

4、类同名变量15.}16.}17.classExtendsDemo18•{19•publicstaticvoidmain(String[]args)20.{21.Ch订dc=newChild();22.System.out.println(c・getParentlO);23.System.out.println(c•getChildI());24.}25.}输出结果:□ava]viewplaincop1-12.2三、方法如果子类中的成员方法的名字、返回类型及参数个数和类型都与父类中的某个成员方法完全

5、相同时,则父类的成员方法被覆盖(重写)。覆盖:当子类继承父类,沿袋了父类的功能到子类中。虽然子类具备了该方法,但想要的方法勾容却和父类的小一致。这时,没冇必耍定义新方法,而是使用覆盖特性,保留父类的方法定义,并巫写方法内容。覆盖原则:1)子类覆盖父类,必须保证子类的权限大于等于父类的权限,否则编译失败。2)静态只能覆盖静态。3》子类覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类的异常货该异常的子类:如果父类抛出多个异常,那么子类的覆盖方法只能抛出父类异常的了•集;如果父类方法中

6、没有异常抛出,那么子类的覆盖方法也不可以抛出异常。如果子类的覆盖方法发生了异常,就必须进行try处理,绝对不能抛出。覆盖常用于功能扩展:□ava]viewplaincopyC1-classTel2・{3.voidshow()4.{5•System.out・printIn("number");6・}7・}8.classNewTelextendsTel9・{10-voidshow()11.{12.super.show();13•System•out•printin("nameclassPerson2・

7、{3・privateStringname;Person(Stringname){this•name=name;7・}Person()9・{10・this.name="AAA";}12・publicvoidgetstudent()13・{14・System.out・println("name="+this・name);');14•System•out•println("pic”);15.}

8、16・}四、构造函数1)在对子类对象进行初始化时,父类的构造函数也会运行。因为子类的所有构造函数默认第一行有一

9、条隐式的语句:super();2)如果耍访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定。注意:super语句必须在子类构造函数的第一行。3)当父类中没方空参数的构造函数时,子类必须手动定义super语句來指定访问父类中的构造函数,否则編译失败。4〉子类的构造函数第一行也可以手动指定this语句來访问本类的其他构造函数。[java]viewplaincop16.}17.classStudentextendsPerson18.{19•privateStringid

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

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

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