黑马程序员_学习记录08:多态、Object类

来源:互联网 发布:linux如何删除全部 编辑:程序博客网 时间:2024/06/05 21:03
------- android培训、java培训、期待与您交流! ----------

一、多态:可以理解为事物存在的多种体现形态。

多态的体现:重载和覆盖就是多态性的体现。父类的引用指向了自己的子类对象。父类的引用也可以接受自己的引用对象。

多态的前提:必须是类与类之间有关系,要么继承,要么实现。

多态的好处:提高了程序的扩展性。

多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。

——————————————————————

//Animal a = new Cat();//类型提升。 向上转型。

//a.eat();

//如果想要调用猫的特有方法时,如何操作?

//强制将父类的引用。转成子类类型。向下转型。

///Cat c = (Cat)a;

//c.catchMouse();

//千万不要出现这样的操作,就是将父类对象转成子类类型。

//我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。

//多态自始至终都是子类对象在做着变化。

————————————————————————

if(a instanceof Cat)——判断a的所属类型

{

Cat c = (Cat)a;

c.catchMouse();

}

在多态中成员函数的特点:

在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

在运行时期:参阅对象所属的类中是否有调用的方法。

简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类)

在多态中,静态成员函数的特点:

无论编译和运行,都参考做左边。

二、Object

Object类是所有Java类的最终祖先。包含了所有Java类的公共属性和方法。

(1)“==”比较的是地址,“equals”比较的是内容。

(2):toString:返回对象的字符串描述。

 

------- android培训、java培训、期待与您交流! ----------

 

原创粉丝点击