多态性

本文深入探讨了Java中多态性的概念,包括方法的重载与重写,以及对象的多态性。解释了编译时类型与运行时类型的区别,以及如何通过向上转型实现子类对象对父类引用的使用。同时,分析了多态性在属性访问上的限制。
摘要由CSDN通过智能技术生成

5.6面向对象特征之三:多态性
多态性, 是面向对象中最重要的概念,在java中有两种
体现: 类
1.方法的重载loverload)和 重写(overwrite)
2. 对象的多态性一- 可以直接应用在抽象类和接口上
Java引用变量有两个类型:编译时类型和运行时类型。编译
时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。
➢若编译时类型和运行时类型不一致,就出现多态
(Polymorphism )
多态性(2)
对象的多态一在Java中, 子类的对象可以替代父类的对象
使用

  1. 一 个变量只能有种确定的数据类型
  2. 一个引用类型变量可能指向(引用多种不同类型的对象
    Personp new StudentO:
    Objecto new Person();//Object类 型的变量o,指向Person类型的对象
    o = new Student(); //Obecl类型的变量o, 指向Student类型的对象
    子类可看做是特殊的父类,所以父类类型的引用可以指向
    子类的对象:向上转型(upcasting)。
    多态性(3)
    一个引用类型变量如果声明为父类的类型,但实际引
    用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法
    Student m = new Student();
    m.school = “pku”;
    / 合法,Student类有school成员变量
    Person e = new Student();
    e.school =“pku";
    //非法,Person类没有school成员变量
    属性是在编译时确定的,编译时e为Person类型,没有school成员变量,因而编译错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值