不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java的对象的多态性
父子实例之间的转化处理:
对象向上转型:父类 父类实例 = 子类实例、自动完成转化
对象向下转型:子类 子类实例 = (子类)父类实例、强制完成转化
向上转型(描述一些公共的特征)
可以对参数统一设计:
class People { @Deprecated public void say() { System.out.println("I am people"); } public String sayy() { return "I am a people"; } } class Student extends People{ @Override public void say() { // TODO Auto-generated method stub System.out.println("I am Student"); } } class Child extends People{ @Override public void say() { // TODO Auto-generated method stub System.out.println("I am child"); } } public class Test { public static void main(String[] args) { People student = new Student(); People child = new Child(); fun(student); fun(child); } public static void fun(People people) { people.say(); } }
向下转型(描述子类自己特殊的定义)
但是向下转型不安全
class Person { public void say() { System.out.println("I am person"); } } class SuperMan extends Person { public String fly() { return "I can fly"; } } public class JavaDemo { public static void main(String[] args) { // TODO Auto-generated method stub Person per = new SuperMan(); per.say(); SuperMan supe = (SuperMan) per; System.out.println(supe.fly()); } }