1 /* 2 形式参数: 4 引用类型 5 类名:需要的是该类的对象 6 抽象类:需要的是该抽象的类子类对象 7 接口: 8 */ 9 abstract class Person { 10 public abstract void study(); 11 } 12 13 class PersonDemo { 14 public void method(Person p) {//p; p = new Student(); Person p = new Student(); //多态 15 p.study(); 16 } 17 } 18 19 //定义一个具体的学生类 20 class Student extends Person { 21 public void study() { 22 System.out.println("Good Good Study,Day Day Up"); 23 } 24 } 25 26 class PersonTest { 27 public static void main(String[] args) { 28 //目前是没有办法的使用的 29 //因为抽象类没有对应的具体类 30 //那么,我们就应该先定义一个具体类 31 //需求:我要使用PersonDemo类中的method()方法 32 PersonDemo pd = new PersonDemo(); 33 Person p = new Student(); 34 pd.method(p); 35 } 36 }
抽象类作为参数类型
接口作为参数类型
1 /* 2 形式参数: 3 基本类型 4 引用类型 5 类名:需要的是该类的对象 6 抽象类:需要的是该抽象的类子类对象 7 接口:需要的是该接口的实现类对象 8 */ 9 //定义一个爱好的接口 10 interface Love { 11 public abstract void love(); 12 } 13 14 class LoveDemo { 15 public void method(Love l) { //l; l = new Teacher(); Love l = new Teacher(); 多态 16 l.love(); 17 } 18 } 19 20 //定义具体类实现接口 21 class Teacher implements Love { 22 public void love() { 23 System.out.println("老师爱学生,爱Java,爱林青霞"); 24 } 25 } 26 27 class TeacherTest { 28 public static void main(String[] args) { 29 //需求:我要测试LoveDemo类中的love()方法 30 LoveDemo ld = new LoveDemo(); 31 Love l = new Teacher(); 32 ld.method(l); 33 } 34 }