Java基础——多态中的“编译看左,运行看右”

本文探讨了Java中多态性的特点,指出静态属性和方法在编译和运行时都遵循“编译看左”,而非静态成员则在运行时遵循“运行看右”的原则。通过实例解释了这一概念。
摘要由CSDN通过智能技术生成

Java基础——多态中的“编译看左,运行看右”

  对于多态中的静态属性或方法来讲,编译看左,运行也看左。无论右边是当前类还是当前类的子类,编译和运行期间执行的都是当前类中的方法
  对于多态中的非静态属性或非静态方法,编译看左,运行看右。也就是在编译期间看左边的类中有无该方法/属性,而实际在运行时执行的是右边类的方法/属性如果编译期间没有在左边的类找到该非静态域,则会报编译错误。

   举个栗子,主要关注:
   非静态类的编译运行
   静态类的编译运行
   典型的非静态类的编译错误

	class Animal{
    	public void eat(){
        	System.out.println("eat");
    	}

    	public static void sleep(){
        	System.out.println("sleep");
    	}
	}

	class Cat extends Animal{
    	public void eat(){
        	System.out.println("Cat eat");
    	}

    	public static void sleep(){
        	System.out.println("Cat sleep");
    	}

    	public void miao(){
        	System.out.println("miao");
    	}
	}

	public class p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值