java多态(随堂笔记)

  1. 理解多态性:可以理解为一个事物的多种形态;

  2. 何为多态性:对象的多态性,父类的引用指向子类的对象(或子类的对象赋给父类的引用);

  3. 多态的使用:有了对象的多态性以后,我们在编辑期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译看左,运行看右;

  4. 多态性的使用前提:(1)类的继承关系;

​ (2)方法的重写;

  1. 对象的多态性,只适用于方法,不适应于属性(编译和运行都看左边);

虚拟方法调用(Virtual Method Invocation)

  • 正常的方法调用
Person e = new Person();
e.getInfo();
Student e = new Student();
e.getInfo();
  • 虚拟方法调用(多态情况下):子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的方法。这样的方法调用在编辑期是无法确定的;
Person e = new Student();
e.getInfo();    //调用Student类的getInfo()方法
  • 编译时类型和运行时类型:编译时e为Person类。而方法的调用是在运行时确定的,所以调用的是Student类的getInfo()方法;--------动态绑定
  1. instanceof操作符
  • x instanceof A :检验x是否为A类的对象,返回值为double型;
  • 要求x所属的类与类A必须是子类和父类的关系,否则编译错误;
  • 如果x属于类A的子类B,x instanceof A值也为true;
public class Person extends Object(...)
public class Student extends Person(...)
public class Graduate extends Person(...)
//********************************
    public void method1(Person e){
    if(e instanceof Person)
        //处理Person类及其子类对象
    if(e instanceof Student)
        //处理Student类及其子类对象
    if(e instanceof Graduate)
        //处理Graduate类及其子类对象
}

  1. 子类继承父类
  • 若子类重写了父类的方法,就意味着子类里定义的方法彻底覆盖了父类里的同名方法,系统将不可能把父类里的方法转移到子类中;
  • 对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量;
  1. java.lang.Object类
  • Object类是所有Java类的根父类;
  • 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Java.lang.Object类;
  • Object类中的功能(属性、方法)就具有通用属性;
  • Object类只声明了一个空参构造器;
  1. ​ toString( )方法
  • toString()方法在Object类中定义,其返回值是String类型,返回类名和它的引用地址;
  • 在进行String与其它类数据的连接操作时,自动调用toString()方法;
Date now = new Date();
System.out.println("now="+now);//相当于System.out.println("now="+now.toString());
  • 可以根据需求在用户自定义类型中重写toString()方法;如String类重写了toString()方法,返回字符串的值;
  • 基本类型数据转换为String类型时,调用了对应包装类的toString()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值