day08多态和object类
来源:互联网 发布:淘宝美工学费多少 编辑:程序博客网 时间:2024/06/08 02:03
人:男人,女人
动物:猫 狗
类(多个) 猫 x =new 猫();实体
动物 y =new 猫();
1.多态的体现
父类的引用指向了自己的子类对象
父类的引用可以接收自己的子类对象
2.多态的提前
必须类与类之间有关系,要么继承要么实现
3.多态的好处
多态大大提高了代码的扩展性
4.多态的弊处
提高了扩展性,但是只能使用父类的引用,访问父类的成员
5.多态的应用
6.多态的出现代码中的特点(多态使用的注意事项)
在多态中,成员函数(非静态)的特点(重写特性 覆盖)--动态绑定
在编译时期,参与引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,失败
在运行时期,参阅对象所属的类中是否有调用方法
简单总结,成员函数在多态调用时,编译看左边,运行看右边
在多态中,成员变量的特点
无论编译和运行,都看左边(引用型变量所属的类)
在多态中,静态成员函数特点--静态绑定
无论编译和运行,都看左边
class Fu
{
void method1()
{
System.out.println("fu method_1");
}
void method2()
{
System.out.println("fu method_2");
}
}
class Zi extends Fu
{
void method1()
{
System.out.println("zi method_1");
}
void method3()
{
System.out.println("zi method_3");
}
}
class DuoTaiDemo2
{
public static void main(String[] args)
{
Fu f=new Zi();
f.method1();
f.method2();
//f.method3();
}
}
--------------------------------
/*
Object:是所有对象的直接后者间接父类,传说的上帝
该类中定义了所有对象都具备的功能
Object类中已经提供了对象是否相同的比较方法
如果自定义类也有比较相同的功能,没有必要重新定义
只要沿袭父类中的功能,建立自己特有的比较功能,这就是覆盖
*/
class Demo//extends Object
{
private int num;
Demo(int num)
{
this.num=num;
}
public boolean equals(Object obj)//Object obj=new Demo();
{
if (!(obj instanceof Demo))
return false;
Demo d=(Demo)obj;//向下转型
return this.num==d.num;
}
/*
public boolean compare(Demo d)
{
return this.num==d.num;
}
*/
}
class Person
{
}
class ObjectDemo
{
public static void main(String[] args)
{
Demo d1 =new Demo(4);
//Demo d2 =new Demo(4);
//Demo d3=d1;
//System.out.println(d1.equals(d2));
//System.out.println(d1==d2);//地址的比较相等
//System.out.println(d1==d3);
System.out.println(Integer.toHexString(d1.hashCode()));
System.out.println(d1.toString());
}
}
- day08多态和object类
- day08多态介绍和总结,主板示例,Object 类
- 黑马程序员-day08多态和Object类
- 黑马程序员--eclipse和Object类(day08)
- JAVA基础day08 多态特性 object类
- 黑马程序员-day08-面向对象(Object类)
- day08-js语法和常用类
- day08类的继承
- day08
- day08
- day08
- day08
- day08
- day08
- day08
- day08
- day08
- day08
- CollapsingToolbarLayout使用
- Zookeeper 开发者手册
- 异步IO与轻量级线程
- SpringMVC:redirect传值与Flash
- 1019 数字黑洞
- day08多态和object类
- Eclipse下JNI开发
- 《Android编程权威指南》第二版 第五章 挑战练习
- F项目管理基础
- 仪仗队(欧拉函数)
- Codeforces Round #368 (Div. 2) E. Garlands 二维树状数组
- OpenGL中创建一个窗口
- 写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket
- Python os模块 使用示例