- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继承与接口
兰明敬 lanmingjing@126.com
《Java技术》课程
回顾
继承与接口
1 继承
2 抽象类
3 接口
4 反射技术
专题目标
专
题
目
标
继承:理解继承、抽象类、接口的概念和作用;
能够使用继承、抽象类、接口和反射技术编写出结构灵活的程序
任务
作业5:改造作业4,使用继承建立多种类型的人员信息,使用接口、反射技术将哈希表DAO和数组DAO整合起来。
要求:
实现多个DTO对象,这些对象继承共同的父类
使用接口机制整合两个DAO,即保持BO的一致
模仿课堂案例,使用反射技术实现DAO的动态切换
1 继承
public class Person{
public string id, name = “a person”;
public String toString( ){
return “Person with id:+id+” \tname:”+name;
}
}
public class Student extends Person{
private String classID;
@overide
public String name = “a student”;
public String getclassID(){
return classID;
}
@overide
public String toString( ){
return “Student with id:+id+
”\tname:”+name + “\tclass id:”+ classID;
}
}
1 继承
方法区:加载类及其父类到方法区
堆:对象中包含类及所有超类声明的实例变量以及到类数据的引用
方法区
父类
堆
对象
父类实例变量
子类实例变量
引用
子类
父类
父类实例变量
1 继承
通过super指针引用父类中的成员(即使被覆盖)。
public class Student extends Person{
public String name = student1;
public String toString(){
System.out.toStringln( );
return super.toString();
}
}
1 继承
通过this特指“本对象”:
区分实例变量和局部变量
构造方法掉其他构造方法
public class Person{
private String name ;
public setName( String name ) {
= name;
}
}
1 继承
子类通过继承拥有了父类所有成员,包括静态成员,但private修饰的成员除外
除java.lang.Object外,任一Java类必然继承一个类且只能继承一个类:
要么使用extends继承
要么,编译器编译时加上继承java.lang.Object的声明
因此,所所有Java类按树状结构组织。
1 继承
子类不继承父类的构造方法
子类必须在构造方法中调用父类构造方法
隐式调用:若父类有无参数的构造方法,则可以不调用(也可用调用)父类构造方法。若不显示调用,编译器会在子类构造方法中默认加上super()语句。
显式调用:若父类不存在无参数构造方法,则必须显示构造父类。
1 继承
super语句必须是方法第一条语句。
public class Person{
public string name;
public Person( String name){
= name;
}
public class Student extends Person{
public Student(String name,String classID){
super(name);
……
}
1 继承
final可以修饰变量、方法和类。
修饰变量:称为常量,常量在声明时必须指 定值,且不能再发生变化。
修饰方法:不能被覆盖。
修饰的类:不能被继承。
注意:
final修饰类、方法和变量时意义差别较大。
final修饰类、方法和变量彼此不存在任何关系。
1 继承
用父类称呼之类(上溯)
Person person = new Student();
Object obj = person;
……
obj.toString();
((Student)obj).getClassId();
Student stu = (Student ) obj;
Person per = (Person) obj;
1 继承
继承
代码组织
代码复用
功能定制
动态绑定
文档评论(0)