JAVASE--面向对象(四)

多态:在同一个时刻体现不同的状态,多态主要体现在向不同的对象发送同一个信息,不同的对象在接受到信息后产生不同的行为(方法),对象可以用自己的方法去响应共同的信息。

多态性的表现:1.方法的重载与重写  2.子类对象的多态性

使用的前提:1.要有继承关系。2.要有方法的重写

格式:Person p=new Man();//向上转型

//虚拟方法调用:父类的引用 指向子类的实例对象,当调用方法时,实际上是子类重写父类的方法

编译时:认为p是Person类型的,所以只能通过p访问Person拥有的属性和行为,Man特有的属性和行为不能访问。

反正一句话,访问变量看声明,访问方法看实际对象类型(new出来的类型)

例子:

关于向下转型

扫描二维码关注公众号,回复: 5658621 查看本文章

1.向下转型,使用强转符:()

2.为了不报ClassCastException ,最好在向下转型前进行判断:instanceof

if(p instanceof  Woman){

         Woman w=(Woman)p;

          p.shopping();

}

java.lang.Object 是所有类的根父类

1.Object类仅有一个空参的构造器 public Object(){}

2.关于方法

equals(Object obj)

public boolean equals(Objec obj){

       return (this == obj);

}

1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,不同返回false

两端的数据类型可以不同,只要值相同都返回true

2.引用数据类型:比较引用变量的地址是否值是否相等

equals():
>①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等
>像String 包装类 File类 Date类这些重写Object类的equals()方法,比较是两个对象的"实体内容"是否完全相同。
>若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的
 equals(Object obj)方法

 toString()方法
当我们输出一个对象的引用时,会调用toString()方法。
1.public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置
2.一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。
3.像String类、Date、File类、包装类都重写了toString()方法。

包装类

基本数据类型由于不是类,不能够使用java类库中提供的大量方法,所以在设计上,我们让每一个基本数据类型都对应一个类,同时数据存储的范围还不变,此时相当于基本数据类型有了类的特点,这些类即为包装类(wrapper 或 封装类);

基本数据类型           包装类

boolean                    Boolean

byte                           Byte

short                          Short

int                             Integer

long                           Long

char                           Character

float                           Float

double                        Double

1.基本数据类型与对应的包装类有自动装箱、自动拆箱

 如:int i = 10;      

       Integer i1 = i;//自动装箱    

       int j = i1;//自动拆箱

2.基本数据类型、包装类---->String类:调用String类的重载的valueOf(Xxx xx);  

String类---->基本数据类型、包装类:调用相应的包装的parseXxx(String str);

  注意:String str = "123";        

       int i = (int)str;是错误的转法。

猜你喜欢

转载自blog.csdn.net/XiaoLongFight/article/details/82851986