1、返回值如果是具体类型!
/*
返回值研究
基本类型: 四类八种 public int sum(int a,int b){} 返回什么类型,就是使用当前基本类型接收数据即可!
引用类型:
具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
抽象类
接口
*/
class Student{
public void study(){
System.out.println("Good Good Study,Day Day Up") ;
}
}
class StudentDemo{
public Student method(){ //如果返回值类型是具体类,需要返回的是该类的具体对象
//分步走
//Student s = new Student() ;
//return s ;
//return ;
return new Student() ;//匿名对象
}
}
//测试:
class StudentTest{
public static void main(String[] args){
//需求:调用StudentDemo中method 方法
StudentDemo sd = new StudentDemo() ;
//调用
Student s = sd.method() ;
s.study() ;
}
}
2、返回值如果是抽象类型!
/*
返回值研究
基本类型: 四类八种 public int sum(int a,int b){} 返回什么类型,就是使用当前基本类型接收数据即可!
引用类型:
具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
抽象类:如果方法的返回值是一个抽象类类型,需要返回的是该抽象类的子类对象
接口
*/
//抽象类
abstract class Person{
public abstract void work() ;
}
class PersonDemo{
public Person function(){//返回值是一个抽象类,需要通过子类进行实例化
//需要返回值 return
//return new Person() ; //不能实例化
//抽象类多态
//分步走
//Person p = new Student() ; //抽象类多态
//return p ;
return new Student() ;
}
}
//传统方式:定义一个抽象类的子类
class Student extends Person{
public void work() {
System.out.println("学生喜欢敲代码...");
}
}
class PersonTest{
public static void main(String[] args){
//需求:调用PersonDemo中的function方法
//创建PersonDemo对象
PersonDemo pd = new PersonDemo() ;
Person p = pd.function() ; //返回抽象类Person对象 Person p = new Student() ;
p.work();
//Scanner sc = new Scanner(System.in) ;System.in---->返回值是InputStream:抽象类
}
}
3、返回值如果是接口类型!
/*
返回值研究
基本类型: 四类八种 public int sum(int a,int b){} 返回什么类型,就是使用当前基本类型接收数据即可!
引用类型:
具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
抽象类:如果方法的返回值是一个抽象类类型,需要返回的是该抽象类的子类对象
接口:如果方法的返回值是一个接口类型,需要返回该接口的子实现类对象!
*/
//接口
interface Train{
public abstract void study() ;
}
class TeacherDemo{
public Train method(){ //返回值是接口类型,不能直接返回接口,需要返回的是该接口的子实现类对象
//返回值 return
//return new Train(); 接口不能实例化
//分步走
//接口多态
//Train tr = new TrainImpl() ;
//return tr ;
return new TrainImpl() ;
}
}
//定义接口的子实现类
class TrainImpl implements Train{
public void study(){
System.out.println("学习JavaEE...") ;
}
}
class InterfaceTest{
public static void main(String[] args){
//需求:调用TeacherDemo中的method方法
TeacherDemo td = new TeacherDemo() ;
Train t = td.method() ;//返回值是接口类型 Train t = new TrainImpl() ;
t.study() ;
}
}