當前位置:
首頁 > 知識 > 類名、抽象類名、介面作為形式參數

類名、抽象類名、介面作為形式參數

它們都是引用類型。

抽象類、介面都不能實例化。

  • 類名作形參:需要的是

    該類的對象

  • 抽象類名作形參:需要的是該抽象類的

    子類對象

    (抽象類多態)
  • 介面作形參:需要的是該介面的

    實現類對象

    (介面多態)

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());
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

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);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

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);
}
}

類名、抽象類名、介面作為形式參數

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

CSS核心屬性
談談傳遞閉包以及自己雜想

TAG:程序員小新人學習 |