形式参数类型
目录
用 [TOC]
来生成目录:
2种形式参数类型
形式参数:
引用类型:
形式参数:
基本类型(太简单)
引用类型
类名:(匿名对象的时候其实我们已经讲过了)需要的是该类的对象 <StudentTest >
抽象类:需要的是该抽象的类子类对象 <PersonTest>
接口:需要的是该接口实现类对象 <TeacherTest>
类名作为形式参数-代码块
// <1>类作为形式参数
class Student{
public void study(){
System.out.println("Good Good Study,Day Day Up!");
}
}
class StduentDemo{
public void method(Student s){
s.study();
}
}
public class StudentTest {
public static void main(String[] args) {
StduentDemo sd = new StduentDemo();
Student ss =new Student();
sd.method(ss);
}
}
抽象类作为形式参数-代码块
// <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) {
//需求:我要测试Person类中的study()方法
PersonDemo pd = new PersonDemo();
// Person p = new Student(); //Person p = new Student(); 多态
Person p = new Student(); //传入参数为Person类,因为是抽象类不可以直接实例化,需要间接实例化
pd.method(p);
}
}
接口作为形式参数-代码块
// <3>接口作为形式参数
interface Love{
public abstract void love();
}
class LoveDemo{
public void method(Love l){ //Love l=new Teacher(); 多态
l.love();
}
}
class Teacher implements Love{ //接口的实现类对象
public void love(){
System.out.println("老师爱学生");
}
}
public class TeacherTest{
public static void main(String[] args) {
// 测试LoveDemo类中的love()方法
LoveDemo ld=new LoveDemo();
Love l=new Teacher(); //接口:需要的是该接口的实现类对象
ld.method(l);
}
}