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 }

 

posted @ 2017-12-22 07:23  gzdlh  阅读(1394)  评论(0)    收藏  举报