1.类名作为形式参数:需要的是该类的对象
//类名做为形式参数
class Studentt{
public void study() {
System.out.println("Good Good Study,Day Day Up!");
}
}
class StudyDemo {
public void studyDemo(Studentt ss) {
ss.study();
}
}
public class Test4 {
public static void main(String[] args) {
//创建对象
Studentt s = new Studentt();
s.study();
StudyDemo st = new StudyDemo();
Studentt stu = new Studentt();
st.studyDemo(stu);
}
}
2.抽象类名作为形式参数:需要的是该抽象类的子类对象
//抽象类名作为形式参数
abstract class Person{
//抽象方法
public abstract void study();
}
class PersonDemo{
public void show(Person p) {
p.study();
}
}
//定义一个具体类
class Child extends Person{
public void study() {
System.out.println("Good Good Study,Day Day Up!");
}
}
public class Test5 {
public static void main(String[] args) {
PersonDemo pd = new PersonDemo();
Person pp = new Child();
pd.show(pp);
}
}
3.接口名作为形式参数:需要的是该接口的实现类对象
//接口名作为形式参数
interface Love{
public abstract void love();
}
class LoveDemo{
public void show(Love ll) {
ll.love();
}
}
//定义一个具体类实现接口
class Actor implements Love {
public void love() {
System.out.println("演员热爱舞台");
}
}
public class Test6 {
public static void main(String[] args) {
LoveDemo ld = new LoveDemo();
Love ve = new Actor();
ld.show(ve);
}
}