一,多态:用子类创建一个对象,并把这个对象的引用放到父类的对象中去
package com.hanjie.polymorphic;
class Per{
public void crySpeak(String s) {
System.out.println(s);
}
}
class People extends Per{
void computer(int a,int b) {
System.out.println(a*b);
}
@Override
public void crySpeak(String s) {
// TODO Auto-generated method stub
super.crySpeak("**********"+s);
}
}
public class AllPerson {
public static void main(String[] args) {
Per per;
People han = new People();
per = han;//per是han的上转型对象
per.crySpeak("hanjie");
}
}
二,理解多态
- 编译类型:声明对象变量的类型,Per:表示把对象看出什么类型
- 运行类型:对象的真实类型
- 所谓多态:对象具有多种形态,对象可以存在不同的形式
- 多态的前提:可以是继承关系(类和类)也可以是实现关系(接口和实现类)
三,多态中的方法和变量问题
- 多态,即对象的上转型对象,直能调用继承或重写的方法
- 对象的上转型对象,直调用继承的变量,隐藏的变量