Java 5 day--Object、多态

一、Object类

Object类的主要方法

(1)toString()方法
加与不加toString的效果相同,都会调用父类Object中的toString方法。

    public static void main(String[] args){
    		Person p=new Person();
    		System.out.println("不加toString的输出结果"+p);
    		System.out.println("加toString的处处结果"+p.toString());
    }

(2)equals()方法

    public static void main(String[] args) {
        Student s1=new Student("张三",12);
        Student s2=new Student("李四",13);
        System.out.println(s1.equals(s2));
    }

对象的比较---- ==和equals()
==:
比较两个基本类型变量的值是否相等。
比较两个引用类型的值即内存地址是否相等,即是否指向同一对象。
equals:
两对象的内容是否一致。
示例:

  • object1.equals(object2) 如:p1.equals(p2)
    比较所指对象内容是否一致,是比较两个对象,而非两个基本数据类型的变量。
  • object1 == object2 如:p1 == p2
    比较p1和p2的值即内存地址是否相等,即是否是指向同一对象。
    自定义类需重写equals(),否则其对象比较结果总是false。

二、多态

对应同一个指令(调用同一个名称的方法),不同的对象给予不同的反应(不同的方法实现)规范(多态实现的前提):
1.必须要有继承关系。
2.子类方法必须重写父类的方法。
3.父类引用指向子类对象。

主人类:

public class Person {
    public void feed(Pet pet){
        pet.feed();
    }

测试方法:

        Person p=new Person();
        Pet dog=new Dog();
        Pet cat=new Cat();

如何实现多态
1.编写父类。
2.编写子类,子类重写父类的方法
3.运行时,使用父类的类型,子类的对象。

实现多态的两种形式
1.使用父类作为方法形参实现多态。

public class Person {
    public void feed(Pet pet){
        pet.feed();
    }
}

2.使用父类作为方法返回值实现多态。
主人类:

public class Person {
    public void feed(Pet pet){
        pet.feed();
    }
}

测试方法:

Person p=new Person();
Pet dog=new Dog();
p.feed(dog);

父类到子类的转换:
1.向下转型(强制类型转换)
当父类需要转成子类的时候,要进行强制转换,但是在强制转换之前一定要先判断父类引用指向的子类对象是谁,如果无法确定,那么在运行的时候可能会出错。
当子类需要向父类转换的时候,直接自动转换

Pet dog=new Dog();
Dog dog=(Dog)pet;

2.instanceof运算符

Pet pet=p.buyPet(1);
if(pet instanceof Dog){
    System.out.println("买的是一只狗");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值