1002 Java形式参数问题-类型名、抽象类、接口

形式参数类型

目录

[TOC]来生成目录:

  • 形式参数类型
      • 目录
      • 2种形式参数类型
        • 形式参数
        • 引用类型
      • 类名作为形式参数-代码块
      • 抽象类作为形式参数-代码块
      • 接口作为形式参数-代码块


2种形式参数类型

形式参数:

引用类型:

形式参数:
    基本类型(太简单)
    引用类型
        类名:(匿名对象的时候其实我们已经讲过了)需要的是该类的对象  
        抽象类:需要的是该抽象的类子类对象                              
        接口:需要的是该接口实现类对象                        

类名作为形式参数-代码块

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

}

你可能感兴趣的:(Java笔记)