1.多态是方法的多态,属性没有多态
2.父类和子类有联系,类型转换异常!classcastexception
3.存在条件,继承关系,方法需要重写,父类引用指向子类对象Father f1=new Son();
4.不能继承的有
(1)static方法,属于类,不属于实例
(2)final常量
(3)private方法
5.定义:同一方法根据发送对象的不同采用不同的行为方式(都是run()方法,不同对象调用结果不一样)
一个对象的类型是确定的,可以指向对象的引用类型有很多(父类,有关系的类)
6.多态存在条件:有继承关系,子类重写父类方法,父类引用指向子类对象
package com.wuming.oop4.demo06;public class Person {public void run(){System.out.println("run");} }
package com.wuming.oop4.demo06;public class Student extends Person{@Overridepublic void run() {System.out.println("son");}public void eat(){System.out.println("eat");} }
package com.wuming.oop4.demo06;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();s2.run();//子类重写了父类的方法,执行子类的方法 输出sons1.run();// 输出son//对象能执行哪些方法,主要看左边类型和右边无关((Student) s2).eat();//eats1.eat();//eat} }