Java多态



JAVA特性之——多态

 

1、多态

1.多态性的表现:

1)方法的重载与重写

2)子类对象的多态性

2.使用的前提:

1)要有继承关系

2)要有方法的重写

3.格式:

Person p = new Man();

//虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法

p.eat();

p.walk();

//p.entertain();//不能直接调用Man类中的方法

4.注意:

1)编译时,认为pPerson类型的,故只能执行Person里才有的结构,即Man里特有的结构不能够调用

2)子类对象的多态性,并不适用于属性

5.关于向下转型:

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

2)为了保证不报ClassCastException,最好在向下转型前,用instanceof进行判断,若变量aA类的实例,那么a也一定是A类的父类的实例

 

2Object

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

2.Object类仅有一个空参的构造器

3.关于方法

1equals(Objectobj)

1)源码

public boolean equals(Object obj) {

       return(this == obj);//比较的是地址值

    }

2==

1>基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false

注:两端数据类型可以不同,在不同的情况下,也可以返回true

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

3equals()

1>只能处理引用类型的变量,在Object类中发现equals()仍然比较的两个引用变量的地址值是否相等

    2>String、包装类、File类、Date类重写了Object类的equals()方法,比较两个对象的实体内容是否完全相同

    3>若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的equals(Object obj)方法

2toString()方法——当我们输出一个对象的引用时,就会调用toString()方法

1)源码:

public String toString() {

       returngetClass().getName() + "@" + Integer.toHexString(hashCode());

    }

当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置(地址)

2)一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回

3)像StringDateFile、包装类都重写了toString()方法

 

3、包装类

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


 基本数据类型: boolean bate short int long char float double

 包装类 : Boolean Byte Short integer Long Character  Float Double


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值