Java学习-多态
多态:
1、多态是方法的多态,不是属性的多态
2、父类和子类有联系,否则会出现类型转换异常ClassCastException
3、存在条件,继承关系,方法需要重写
4、父类引用指向子类对象Father f1=new Son();
不能被重写的方法:
1、static:属于类,不属于实例
2、final:常量
3、privat:私有封装
Pet:
public class Pet { public void run(){ System.out.println("跑起来!"); } }
Cat:
public class Cat extends Pet{ @Override public void run() { System.out.println("son");//重写父类方法,只执行子类方法 } public void eat(){ System.out.println("吃"); } }
Application:
public class Application { //静态方法无法被重写,只有非静态方法才可以被重写 public static void main(String[] args) { //一个对象的实际类型是确定的 //new Person(); //new Student(); //可以指向的引用类型不确定:父类的引用指向子类 //Cat调用的都是自己的方法,或者继承父类的方法 Cat cat = new Cat(); //Pet:父类,指向子类,但不能调用子类独有的方法 Pet cat1 = new Cat(); Object cat2 = new Cat(); cat1.run();//子类重写了父类的方法,则执行子类 cat.run(); ((Cat) cat1).eat();//父类调用子类方法 只能进行强转 } }

浙公网安备 33010602011771号