您的位置:首页 > 编程语言 > Java开发

《java入门第一季》之面向对象(形式参数和返回值问题的深入研究2)

2016-05-07 22:48 471 查看
形式参数是引用类型 抽象类:

/*
形式参数:
引用类型
抽象类:需要的是该抽象类的子类对象

*/
abstract class Person {
public abstract void study();
}

class PersonDemo {
public void method(Person p) {
p.study();//如果形参是一个抽象类,则需要传递的实际参数应该是该抽象类的子类的对象。
}
}

//定义一个具体的学生类
class Student extends Person {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class PersonTest {
public static void main(String[] args) {

//需求:(要使用PersonDemo类中的method()方法)
PersonDemo pd = new PersonDemo();
Student s = new Student();
 pd.method(s);//传递的实际参数应该是该抽象类的子类的(对象)
System.out.println("----------------");
//方法三:使用多态也是可以的,只要保证队形是实现了抽象类的子类对象就可以了
Person p = new Student();
p.study();
pd.method(p);
}
}
返回值类型是引用类型 : 抽象类

/*
返回值类型
引用类型:
抽象类:返回的是该抽象类的子类对象
*/
abstract class Person {
public abstract void study();
}

class PersonDemo {
public Person getPerson() {

return new Student();//匿名对象
}
}

class Student extends Person {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class PersonTest2 {
public static void main(String[] args) {
//需求:测试Person类中的study()方法
Person p1 = new Student();//多态的方式
p1.study();
System.out.println("----------------");
Student s = new Student();//自己类对象方式
s.study();
System.out.println("----------------");

PersonDemo pd = new PersonDemo();
Person p = pd.getPerson(); //使用了返回值类型的方式,返回值类型是个person类型,所以用person接收。总体方式还是多态。
p.study();
System.out.println("----------------");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: