研究返回值问题
* 方法的返回值类型:
* 基本数据类型:----返回当前基本类型的具体数据值即可!
* 引用数据类型 :
*
* 如果返回值类型是一个具体类,方法如何结束?
* 方法return 需要的该具体类对象!
如果一个方法的返回值是引用类型: 返回值类型是接口类型 ,这个方法返回的是什么?
* 需要返回的是该接口的子实现类对象!
interface Love{
public abstract void love() ;
}
//类MethodDemo
class MethodDemo{
public Love function(){
//?
//Love love = new Love(); //接口特点:就是不能实例化,比抽象类抽象
//需要返回的该接口子实现类对象
//return new LoveImpl() ;
//接口多态
Love love = new LoveImpl() ;
return love ;
}
}
//定义一个接口的子实现类,实现接口中的love方法
class LoveImpl implements Love{
@Override
public void love() {
System.out.println("love loveImpl...");
}
}
//测试类
public class ReturnDemo3 {
public static void main(String[] args) {
//需要调用MethodDemo类中的function方法?
//创建MethodDemo类对象
MethodDemo md = new MethodDemo() ;
Love love = md.function();//Love love = new LoveImpl() ;
love.love();
}
}
返回值问题研究
* 引用类型:
* 方法的返回值如果是抽象类的情况,如何结束方法?需要返回什么?
import java.io.InputStream;
import java.util.Scanner ;
abstract class Person{
public abstract void work() ;
}
//定义PersonDemo
class PersonDemo{
public Person show(){
//?
//Person p = new Person();抽象类不能实例化
//需要返回当前抽象类的子类对象
//Person p = new Teacher() ; //抽象类多态
//return p ;
return new Teacher() ;//匿名对象
}
}
//需要提供子类
class Teacher extends Person{
@Override
public void work() {
System.out.println("不断去教授课程...");
}
}
//测试类
public class ReturnDemo2 {
public static void main(String[] args) {
//需要调用PersonDemo类中的show方法
PersonDemo pd = new PersonDemo() ;
Person person = pd.show(); //相当于---- >Person person = new Teacher() ;
person.work();
//其实键盘录入就是这一个构造方法的形式参数是抽象类
//Scanenr(InputStream in) ;
//InputSteam:抽象类 --- java.io.InputStream:字节输入流:(io流去讲)
InputStream inputStream = System.in; //底层方法--->非Java语言实现的:
Scanner sc = new Scanner(inputStream) ;
}
}