一,多态的概述
多态来源于一种实物的多种表现形态,例如:你是个一个人,同时也是一个学生, 一个事物,有不同的表现形态。这是多态
二,多态的定义
父类的引用指向子类对象。
1.普通定义
父类变量名 变量 = new 子类变量名();
2.抽象类定义
抽象类名 变量 = new 抽象类子类变量名();
3.接口定义
接口类名 变量 = new 接口子类变量名();
public abstract class People { abstract void speak(); } public class Birtsh extends People { @Override void speak() { System.out.println("Hello"); } } public class Chinese extends People { @Override void speak() { System.out.println("雷猴~"); } } public class Test { public static void main(String[] args) { People p1 = new Chinese(); People p2 = new Birtsh(); p1.speak(); p2.speak(); } }
三,多态的具体实现
1.使用父类作为方法的形参
2.使用父类当作方法的返回值
这两个方法主要使创建对象;
public abstract class People { abstract void speak(); } public class Test { static People makePeople(int type){ People pp; if (type==1){ pp = new Chinese(); }if (type==0){ pp = new Birtsh(); }else{ pp = null; } return pp; } public static void main(String[] args) { // People p1 = new Chinese(); // People p2 = new Birtsh(); // p1.speak(); // p2.speak(); People p1 = makePeople(1); if (p1 ==null){ System.out.println("创建失败"); }else{ if (p1 instanceof Chinese){ Chinese pp1 = (Chinese) p1; pp1.speak(); }else{ System.out.println("不是中国人"); } } } }
四.instanceof 用法:
主要用来判断父类创建的对象是否是子类的类型
这是用来判断类型的关键字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)