基本类型和引用类型作为形式参数
基本类型:
例如:
class Demo {
public int sum (int a,int b) {
return a + b;
}
}
引用类型:
类:
例如:
class Student {//学生类中的一个方法public void show() {System.out.println("好好学习");}}class StudentDemo {//这里的Student s是引用类型的形式参数//如果一个方法的形式参数是一个类类型(引用类型)//这里其实需要的是该类的对象public void method(Student s) {//调用学生类的方法s.show();}}
抽象类:
需要的是抽象类的子类对象,因为抽象类不能实例化,必须用多态方式实例化。
案例:
Person抽象类:package com.haust.day10.demo2;public abstract class Person {public abstract void study();}Student类继承Person抽象类:package com.haust.day10.demo2;public class Student extends Person {public void study() {System.out.println("好好学习!!");}}PersonDemo类:package com.haust.day10.demo2;public class PersonDemo {public void method(Person p){p.study();}}测试类:package com.haust.day10.demo2;public class Main {/*** @param args*/public static void main(String[] args) {//需求:使用PersonDome中的method方法//目前是没有办法使用PersonDome中的method方法的//因为抽象类不能被实例化,所以只能先定义一个具体类PersonDemo pd = new PersonDemo();Person p = new Student();//使用父类引用,间接使用抽象类对象pd.method(p);//把抽象类Person对象p引用作为参数传递。}}
输出:
好好学习!
接口:
需要的是实现类对象,因为抽象类不能实例化,必须用多态方式实例化。
案例:
Love接口:package com.haust.day10.demo3;public interface Love {public abstract void love();}LoveDemo类:package com.haust.day10.demo3;public class LoveDemo {public void method(Love l){l.love();}}Student类:package com.haust.day10.demo3;public class Student implements Love {public void love() {System.out.println("学生爱学习!");}}测试类:package com.haust.day10.demo3;public class Main {/*** @param args*/public static void main(String[] args) {//需求:测试LoveDemo中的method方法//首先由于Love是接口,不能实例化,所以需要借助实现类通过多态间接"实例化"//首先创建具体类对象LoveDemo ld = new LoveDemo();//实现多态Love l = new Student();//调用方法传参:ld.method(l);}}
输出:
学生爱学习!