javaSE 多态的特性, 成员变量编译运行都取决于父类的变量值, 非静态成员方法编译看父类运行看子类

多态的特性, 成员变量和静态方法编译运行都取决于父类, 非静态成员方法编译看父类运行看子类。

(多态中,非静态成员方法运行的是子类中覆盖父类的同名方法(如果有),其他成员编译和运行都看父类。)

(静态成员属于类,不属于对象,和对象无关。静态成员只与类(类型)有关,和对象无关)


Test.java(测试类):

package cn.xx.demo;
/*
 *   多态中,成员特点
 *   
 *   成员变量:
 *     编译的时候, 参考父类中有没有这个变量,如果有,编译成功,没有编译失败
 *     运行的时候, 运行的是父类中的变量值
 *    编译运行全看父类
 *     
 *   成员方法:
 *     编译的时候, 参考父类中有没有这个方法,如果有,编译成功,没有编译失败
 *     运行的时候, 运行的是子类的重写方法
 *     
 *    编译看父类,运行看子类
 */
public class Test {
	public static void main(String[] args) {
		Fu f = new Zi();
		System.out.println(f.a);  // 父类的变量a的值
		f.show();  // 子类的方法show
	}
}

Fu.java(父类):

package cn.xx.demo;

public class Fu {
	int a = 1;
	
	public void show(){
		System.out.println("父类方法"+this.a);
	}
}
Zi.java(子类):
package cn.xx.demo;

public class Zi extends Fu{
	int a = 2;
	public void show(){
		System.out.println("子类方法"+this.a);
	}
}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值