《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("----------------"); } }
相关文章推荐
- 我的进步是站在巨人的肩膀,java随机数详解
- JavaWeb学习笔记——JavaBean的保存范围和删除
- Java多线程编程4--Lock的实例--实现生产者/消费者模式:一对一、多对多交替打印
- 《java入门第一季》之面向对象(形式参数和返回值问题深入研究1)
- 《java入门第一季》之面向对象(形式参数和返回值问题深入研究1)
- Java中的String详解
- 【GOF23设计模式】_建造者模式详解_类图关系JAVA232
- 20145218 《Java程序设计》第10周学习总结
- 最简单的例子告诉你什么是面向对象(java)
- ZipFile v.s. ZipInputStream in java.util.zip
- Java的代理—JDK Proxy
- java 完全解耦和弱耦合
- Java Swing 秒表
- 维护代码简洁,使用lombok消除冗长的Java代码
- Java学习4_一些基础4_输入输出_16.5.7
- 如何定义 Java 中的方法(二)
- java Io流中对象序列化和反序列问题
- Spring MVC 4 文件上传下载 Hibernate+MySQL例子 (带源码)
- java 程序的格式
- java回调函数