java 的多态 及向上向下转型

来源:互联网 发布:如何组织js代码 编辑:程序博客网 时间:2024/05/29 17:30

一、多态: 一种事物的多种形态
多态的规则(前提):
1.类与类之间要建立关系 建立继承关系
2.必须要有方法的重写
3.父类的指针(引用)指向 子类的对象(空间)
例:

创建 动物类 猫类 狗类 *  都有一个吃的方法 动物类 动物吃饭  *                     猫    吃鱼 *                     狗    吃骨头 *   */public class Demo01 {    // 本类的引用(指针)指向 本类对象(空间)    // 猫是一只猫    public static void main(String[] args) {        Cat c = new Cat();        c.eat();        // 猫是一只动物(不能是 动物是一只猫)        // 父类的引用(指针)指向 子类的对象(空间)        Animal a = new Cat();        a.eat();    }}class Animal{    public void eat() {        System.out.println("吃饭");    }}class Cat extends Animal{    public void eat() {        System.out.println("猫吃鱼");    }}class Dog extends Animal{    public void eat() {        System.out.println("狗吃骨头");    }}

多态时 成员本类是如何调用的?
* 多态时 当父类引用调用成员变量时
* 编译 需要看父类中有没有这个成员变量 没有编译不会通过
* 运行 访问就是父类中的这个成员变量
* 多态时 父类访问成员变量时编译 和 运行(看父类)

二、 向上转型
向上转型就是把子类对象赋值给父类类型的变量。
例:使Parallelogram子类继承Quadrangle父类,然后在主方法中调用父类的draw()方法

class Quadrangle{   // 四边形类    public static void draw(Quadrangle q) {  // 四边形类中的方法        // SomeSentence    }}public class Parallelogram extends Quadrangle{//平行四边形类继承了四边形类    public static void main(String args[]) {        Parallelogram p = new Parallelogram();// 实例化平行四边形类对象引用        draw(p);// 调用父类方法    }}

这里写图片描述

三、向下转型
子类对象总是父类的一个实例。
例:不能说四边形是平行四边形的一种,也不能说鸟是麻雀的一种… …

原创粉丝点击