java面向对象、多态
2014-12-11 14:53
218 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
多态
(一)、多态优缺点:
1),函数本身就具备多态性,某一种事物有不同的具体的体现。2),父类引用或者接口的引用指向了自己的子类对象。
3),提高了程序的扩展性。
4),当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)
5),必须要有关系,比如继承、或者实现。通常会有覆盖操作。
格式:<对象 instanceof 类型> ,判断一个对象是否所属于指定的类型。Student instanceof Person = true;//student继承了person类实例: class 父亲{
void 讲课(){
System.out.println("企业管理");
}
void 钓鱼(){
System.out.println("钓鱼");
}
}
class 儿子 extends 父亲{
void 讲课(){
System.out.println("JAVA");
}
void 看电影(){
System.out.println("看电影");
}
}
class {
public static void main(String[] args) {
父亲 x = new 儿子(); //儿子对象被提升为了父亲类型。
// x.讲课();
// x.看电影(); //错误.
父亲 y = (儿子)x; //将父亲类型强制转换成儿子类型。
y.看电影();//在多态中,自始自终都是子类对象在做着类型的变化。
}
}
(二)、多态在子父类中的成员上的体现特点:
1),成员变量: 编译时期参考的是引用型变量所属的类中是否有调用的成员,(编译时不产生对象,只检查语法错误) 运行时期也是参考引用型变量所属的类中是否有调用的成员。2),成员函数: 编译时期参考引用型变量所属的类中是否有调用的方法, 运行事情参考的是对象所属的类中是否有调用的方法。
3),静态函数: 编译时期参考的是引用型变量所属的类中是否有调用的成员, 运行时期也是参考引用型变量所属的类中是否有调用的成员。
(三)、Object介绍:
1),所有类的直接或者间接继承父类,Java认为所有的对象都具备一些基本的共性内容,这些内容可以不断的向上抽取,最终就抽取到了一个最顶层的类中的,该类中定义的就是所有对象都具备的功能。2),具体方法:
boolean equals(Object obj):用于比较两个对象是否相等,其实内部比较的就是两个对象地址。而根据对象的属性不同,判断对象是否相同的具体内容也不一样。所以在定义类时,一般都会复写equals方法,建立本类特有的判断对象是否相同的依据。
public boolean equals(Object obj){
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
return this.age == p.age;
} 3),String toString():将对象变成字符串;默认返回的格式:类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode())为了对象对应的字符串内容有意义,可以通过复写,建立该类对象自己特有的字符串表 形式。
public String toString()
{
return "person : "+age;
} 4),Class getClass():获取任意对象运行时的所属字节码文件对象。
5),int hashCode():返回该对象的哈希码值。支持此方法是为了提高哈希表的性能。
总结:通常equals,toString,hashCode,在应用中都会被复写,建立具体对象的特有的内容。
相关文章推荐
- 黑马程序员---java面向对象 封装, 继承, 多态
- 黑马程序员--03.Java面向对象--08.【多态中成员的特点】
- 黑马程序员_java面向对象总结【3】(继承、接口和多态)
- Java面向对象多态abstract关键字
- 黑马程序员_java基础3-面向对象(二)多态、异常、包
- 菜鸟的学习之路(3) —java 面向对象程序设计的封装、继承和多态
- Java面向对象多态注意点(随记)
- Java面向对象之多态
- 黑马程序员-JAVA面向对象之抽象、接口、多态
- Java面向对象_多态
- Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态
- java编程面向对象思想:封装,继承,多态
- java--面向对象之多态
- 黑马程序员--03.Java面向对象--07.【多态】【instanceof操作符】
- 黑马程序员--Java学习笔记之面向对象思想(多态、内部类、匿名内部类、异常类)
- Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解
- Java学习第六_八天:面向对象__继承_接口_多态
- Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解
- java面向对象-super、继承、覆盖、多态、类加载、访问控制