1 /* 2 返回值类型 3 引用类型: 4 类:返回的是该类的对象 5 抽象类:返回的是该抽象类的子类对象 6 接口: 7 */ 8 abstract class Person { 9 public abstract void study(); 10 } 11 12 class PersonDemo { 13 public Person getPerson() { 14 //Person p = new Student(); 15 //return p; 16 17 return new Student(); 18 } 19 } 20 21 class Student extends Person { 22 public void study() { 23 System.out.println("Good Good Study,Day Day Up"); 24 } 25 } 26 27 class PersonTest2 { 28 public static void main(String[] args) { 29 //需求:我要测试Person类中的study()方法 30 PersonDemo pd = new PersonDemo(); 31 Person p = pd.getPerson(); //new Student(); Person p = new Student(); 多态 32 p.study(); 33 } 34 }
抽象类作为返回值类型
接口作为返回值类型
1 /* 2 返回值类型 3 基本类型: 4 引用类型: 5 类:返回的是该类的对象 6 抽象类:返回的是该抽象类的子类对象 7 接口:返回的是该接口的实现类的对象 8 */ 9 //定义一个爱好的接口 10 interface Love { 11 public abstract void love(); 12 } 13 14 class LoveDemo { 15 public Love getLove() { 16 //Love l = new Teacher(); 17 //return l; 18 19 return new Teacher(); 20 } 21 } 22 23 //定义具体类实现接口 24 class Teacher implements Love { 25 public void love() { 26 System.out.println("老师爱学生,爱Java,爱林青霞"); 27 } 28 } 29 30 class TeacherTest2 { 31 public static void main(String[] args) { 32 //如何测试呢? 33 LoveDemo ld = new LoveDemo(); 34 Love l = ld.getLove(); //new Teacher(); Love l = new Teacher(); 多态 35 l.love(); 36 } 37 }