多态

class Father {
	int x = 1;
	static int y = 2;

	void eat() {
		System.out.println("开吃");
	}

	static void speak() {
		System.out.println("小头爸爸");
	}
}

class Son extends Father {
	int x = 3;
	static int y = 4;

	void eat() {
		System.out.println("大头儿子很能吃");
	}

	static void speak() {
		System.out.println("大头儿子。");
	}
}

class Demo10 {

	public static void main(String[] args) {

		Father f = new Son(); // 父类引用指向了子类对象。
		System.out.println(f.x); // 1
		System.out.println(f.y); // 2

		f.eat(); // 输出的是子类的。
		
		f.speak(); // 输出的是父类
		
	}
}

 


 

 什么是多态

  一个对象的多种状态

  (老师)(员工)(儿子)

  教师 a =老钟;

  员工 b= 老钟;


 

总结

  1:当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量

  2:当父类和子类具有相同的静态成员变量,那么在多态下访问的是父类的静态成员变量

  所以:父类和子类有相同的成员变量,多态下访问的是父类的成员变量。

  3:当父类和子类具有相同的非静态方法(就是子类重写父类方法),多态下访问的是子类的成员方法。

  4:当父类和子类具有相同的静态方法(就是子类重写父类静态方法),多态下访问的是父类的静态方法。


 多态前提

  1:类与类之间有关系,继承或者实现


 

多态体现

 

  1:父类引用变量指向了子类的对象

 

  2:父类引用也可以接受自己的子类对象

 

posted @ 2015-10-20 13:17  沐风先生  阅读(150)  评论(0编辑  收藏  举报