本文主要是介绍类名、抽象类名、接口作为形式参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
它们都是引用类型。
抽象类、接口都不能实例化。
- 类名作形参:需要的是该类的对象
- 抽象类名作形参:需要的是该抽象类的子类对象 (抽象类多态)
- 接口作形参:需要的是该接口的实现类对象 (接口多态)
1、类名作形参
class Student {public void study() {System.out.println("Good Good Study,Day Day Up");}
}class StudentDemo {public void method(Student s) { //ss; ss = new Student(); Student s = new Student();s.study();}
}class StudentTest {public static void main(String[] args) {//需求:我要测试Student类的study()方法Student s = new Student();s.study();System.out.println("----------------");//需求2:我要测试StudentDemo类中的method()方法StudentDemo sd = new StudentDemo();Student ss = new Student();sd.method(ss);System.out.println("----------------");//匿名对象用法new StudentDemo().method(new Student());}
}
2、抽象类名作形参
abstract class Person {public abstract void study();
}class PersonDemo {public void method(Person p) {//p; p = new Student(); Person p = new Student(); //多态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();Person p = new Student();pd.method(p);}
}
3、接口作形式参数
interface Love{public abstract void love();
}class LoveDemo{public void method(Love l){//l= new Teacher(); Love l= new Teacher(); 多态 l.love();}
}//定义具体类实现接口
class Teacher implements Love{public void love(){System.out.println("老师爱下棋");}
}class TeacherTest {public static void main(String[] args) {//需求:我要测试LoveDemo中的love()方法LoveDemo ld= new LoveDemo();Love l= new Teacher();ld.method(l);}
}
这篇关于类名、抽象类名、接口作为形式参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!