00059_抽象类作为方法参数与返回值
1、抽象类作为方法参数
当遇到方法参数为抽象类类型时,要传入一个实现抽象类所有抽象方法的子类对象。
1 //抽象类 2 abstract class Person{ 3 public abstract void show(); 4 } 5 class Student extends Person{ 6 @Override 7 public void show() { 8 System.out.println("重写了show方法"); 9 } 10 } 11 //测试类 12 public class Test { 13 public static void main(String[] args) { 14 //通过多态的方式,创建一个Person类型的变量,而这个对象实际是Student 15 Person p = new Student(); 16 //调用method方法 17 method(p); 18 } 19 20 //定义一个方法method,用来接收一个Person类型对象,在方法中调用Person对象的show方法 21 public static void method(Person p){//抽象类作为参数 22 //通过p变量调用show方法,这时实际调用的是Student对象中的show方法 23 p.show(); 24 } 25 }
2、抽象类作为方法返回值
抽象类作为方法返回值的情况,也是有的,这时需要返回一个实现抽象类所有抽象方法的子类对象。
1 //抽象类 2 abstract class Person{ 3 public abstract void show(); 4 } 5 class Student extends Person{ 6 @Override 7 public void show() { 8 System.out.println("重写了show方法"); 9 } 10 } 11 //测试类 12 public class Test { 13 public static void main(String[] args) { 14 //调用method方法,获取返回的Person对象 15 Person p = method(); 16 //通过p变量调用show方法,这时实际调用的是Student对象中的show方法 17 p.show(); 18 } 19 20 //定义一个方法method,用来获取一个Person对象,在方法中完成Person对象的创建 21 public static Person method(){ 22 Person p = new Student(); 23 return p; 24 } 25 }

浙公网安备 33010602011771号