java多态polymorphic多态的理解二

java多态中的成员访问特点之成员变量,成员方法

class Demo_polymorphic{
	public static void main(String args[]){
		Father f = new Son();父类引用指向子类对象
		f.print();//son
/**
*成员方法编译看左边(父类),运行看右边
*	编译是为了检查一些错误,若父类中有print方法则能编译通过
*	若父类中没有print方法则能不编译通过(也叫动态绑定)
*/
		f.method;//相当于father.mehod,类名.调用
/**
*静态成员方法编译看左边(父类)运行看左边父类
*	静态和类相关,算不上重写,所以访问还是左边的
*	只有非静态的成员方法,编译看左边,运行看右边
*/
		System.out.println(f.num); //10。
/**
*成员变量编译看左边,运行看左边
*/
		Son s = new Son();
		s.print();//
		s.method;
		System.out.println(s.num);//20
}
class Father{
	int num = 10;
	pubilc void print(){
		System.out.println("father");
	}
	public static void method(){//静态
		System.out.println("static father")
	}
}
class Son extends Father{
	int num = 20;
	pubilc void print(){
		System.out.println("son");
	}
	public static void method(){
		System.out.println("static son")
	}
}


你可能感兴趣的:(Java,java,多态)