java笔记--day09--多态(一)

  • 1 多态概述
    某一个事物,在不同时刻表现出来的不同状态
  • 2 多态的前提和体现
    • 有继承关系
    • 有方法重写
    • 有父类引用指向子类对象: 父 f = new 子();
  • 3 多态中的成员访问特点:

    • A:成员变量
      编译看左边,运行看左边。
    • B:构造方法
      创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。(这其实是因为继承的原因)
    • C:成员方法
      编译看左边,运行看右边。
    • D:静态方法
      编译看左边,运行看左边。
      (静态和类相关,算不上重写,所以,访问还是左边的)

    • 由于成员方法存在方法重写,所以它运行看右边。

PolymorphicDemo:

class Fu{
    int num1;
    public Fu(){
        num1 = 10;
    }

    public void show1(){
        System.out.println("num1 is " + num1);
    }
    public static void show3(){
        System.out.println("static function in Fu class");
    }

}

class Zi extends Fu{
    int num1 = 11;
    int num2 = 20;
    public Zi(){}
    public void show1(){
        System.out.println("num1 is " + num1);
    }
    public void show2(){
        System.out.println("num2 is " + num2);
    }
    public static void show3(){
        System.out.println("static function in Zi class");
    }
}

class PolymorphicDemo2{
    public static void main(String[] args) {
        Fu f = new Zi();
        System.out.println("num1 is " + f.num1); //member variable
        //System.out.println("num2 is " + f.num2); //This line must be commented out,or there is a fail during compilation.(error:can not find the symbol)

        f.show1();
        //f.show2();//This line must be commented out,or there is a fail during compilation.(error:can not find the symbol) 
        f.show3();//static member method
    }
}


/*
running result:
num1 is 10
num1 is 11
static function in Fu class
*/
  • 4 总结
    从running result可以看出:
    num1 is 10 //表示了多态中成员变量访问的特点;以及多态中new一个子类对象的时候,其实也对父类的构造方法进行了初始化(因为Zi继承了Fu)。
    num1 is 11 //表示了多态中成员方法访问的特点
    static function in Fu class //表示对于静态方法,其实没有重写这一概念
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值