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

    形式参数是引用类型   抽象类:

    /*
    	形式参数:
    		引用类型
    			抽象类:需要的是该抽象类的子类对象
    
    */
    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("----------------");
    	}
    }


  • 相关阅读:
    python基础6 迭代器 生成器
    Netty入门之客户端与服务端通信(二)
    Netty入门之HelloWorld
    Java并发之BlockingQueue的使用
    Java并发之Semaphore的使用
    Java并发之CyclicBarria的使用(二)
    Java并发之CyclicBarria的使用
    Java并发之CountDownLatch的使用
    MongoDB的下载与安装
    Hibernate5.2之反向工程
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299847.html
Copyright © 2011-2022 走看看