Java多态
多态的特性:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系 类型转换异常!
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象
不能进行多态的:
1.static 方法
2. final 常量
3.private 方法
//父类 public class Person { public void run(){ System.out.println("mqs"); } }
//子类 public class Student extends Person { @Override public void run(){ System.out.println("mqs2"); } public void op(){ System.out.println("MQS"); } }
public class Application { public static void main(String[] args) { //一个对象的实际类型是确定的 //new Student(); //new Person(); //可以指向的引用类型是不确定的:父类的引用指向子类 //Student能调用自己或者父类的方法 Student s1 = new Student(); //Person父类可以指向子类,但是不能调用子类独有的方法 Person s2 = new Student(); Object s3 = new Student(); Person s4 = new Person(); //对象执行那些方法主要看对象左边的类型,和右边关系不大 s1.run();//子类重写了父类的方法,执行子类的方法 s2.run();//子类重写了父类的方法,执行子类的方法 s4.run(); s1.op(); //s2.op();在父类中没有子类中的该方法 ((Student) s2).op();//将s2强转为Student类 }


浙公网安备 33010602011771号