- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《java总结.doc
第四章
一、类的继承
●继承是一种由已有的类创建新类的机制,是面向程序设计的基石之一。
●一个类可以从另一个类中继承它的成员变量和函数,前者称为子类,后者称为父类。类的这种特点称为继承性。
●类的继承通过extends关键字来说明,extends关键字跟在类名称后面,形式如下:
?class ClassName extends FatherClassName { //类体
};
?其中ClassName是子类名,FatherClassName是父类名
●类的继承性的特点
①在Java中,一个类只能有一个父类
②在Java只支持单继承,而不支持多重继承
③子类不能直接访问从父类中继承的私有属性及方法,但可以使用公有(及保护)方法进行访问。
④如果需要多重继承,Java提供了一种接口技术,可以部分地实现多重继承的功能。
二、隐藏和覆盖
●隐藏和覆盖是指子类对从父类继承来的属性变量及方法可以重新加以定义。
●属性的隐藏
①子类中声明了与父类中相同的成员变量名,则从父类继承的变量将被隐藏。
②子类拥有了两个相同名字的变量,一个继承自父类,另一个由自己声明。
③当子类执行继承自父类的操作时,处理的是继承自父类的变量,而当子类执行它自己声明的方法时,所操作的就是它自己声明的变量。
●如何访问被隐藏的父类属性
调用从父类继承的方法,则操作的是从父类继承的属性,使用super.属性。
●方法覆盖
★如果子类不需使用从父类继承来的方法的功能,则可以声明自己的同名方法,称为方法覆盖
★覆盖方法的返回类型,方法名称,参数的个数及类型必须和被覆盖的方法一摸一样
★只需在方法名前面使用不同的类名或不同类的对象名即可区分覆盖方法和被覆盖方法
★覆盖方法的访问权限可以比被覆盖的宽松,但是不能更为严格
●有继承时的构造方法遵循以下的原则
★子类不能从父类继承构造方法
★好的程序设计方法是在子类的构造方法中调用某一个父类构造方法,调用语句必须出现在子类构造方法的第一行,可使用super关键字
三、Object类
Java程序中所有类的直接或间接父类,类库中所有类的父类,处在类层次最高点
包含了所有Java类的公共属性,其构造方法是Object( )
●相等和同一的概念
★两个对象具有相同的类型,及相同的属性值,则称二者相等(equal)
★如果两个引用变量指向的是同一个对象,则称这两个变量(对象)同一(identical)
★两个对象同一,则肯定相等
★两个对象相等,不一定同一
★比较运算符“==” 判断的是这两个对象是否同一
●equals 方法
★由于Object是类层次结构中的树根节点,因此所有其他类都继承了equals()方法
★Object类中的 equals() 方法的定义如下,可见,也是判断两个对象是否同一
●Clone方法
★根据已存在的对象构造一个新的对象
★在根类Object 中被定义为protected,所以需要覆盖为public
★实现Cloneable 接口,赋予一个对象被克隆的能力(cloneability)
●finalize方法
★在对象被垃圾回收器回收之前,系统自动调用对象的finalize方法
★如果要覆盖finalize方法,覆盖方法的最后必须调用super.finalize
●getClass方法
★final 方法,返回一个Class对象,用来代表对象隶属的类
★通过Class 对象,你可以查询Class对象的各种信息:比如它的名字,它的基类,它所实现接口的名字等。
实例:声明一个基类A,它只有一种非默认构造方法;声明A的子类B,B具有默认方法及非默认方法,并在B的构造方法中调用基类A的构造方法。
//A类
public class A {
public A (String lin) {
System.out.println(A类的非默认构造方法 +lin);
}
}//B类
public class B extends A{
public B () {
super (Fuck your teacher);
System.out.println (B默认类构造方法);
}
public B (String lin) {
super (lin);
System.out.println (B类非构造方法);
}
}//测试类
public class test4_4 {
public static void main (String args[]) {
new B();
System.out.println ();
new B(Fuck my teacher);
}
}
运行结果:
第五章
接口
●概念
◆与抽象类一样都是定义多个类的共同属性
◆使抽象的概念
文档评论(0)