数据类型分为1、基本数据类型
2、引用数据类型
引用类型是一个对象类型,指向堆内存中的地址
当返回值为引用类型时: 1、类 :返回值为引用类型的对象
2、抽象类:返回值类型为抽象类的子类的上转型对象
3、 接口:返回值类型为接口的实现类的对象
当形参为引用类型时:
1、类 :传值为该类的对象
2、抽象类:传值为抽象类的子类的上转型对象
3、 接口:传值为接口的实现类的对象
1、当引用类型为类时
public class test {
public static void main(String[] args) {
Woman woman = new Woman();
Man man = woman.a();
man.eat();
}
}
class Man{
public abstract void eat(){
System.out.println("吃饭");
}
}
class Woman{
public Man a() {
return new Man();
}
}
2、当引用类型为抽象类时
public class test {
public static void main(String[] args) {
Woman woman = new Woman();
Man man = woman.a();
man.eat();
}
}
abstract class Man{
public abstract void eat();
}
class Woman{
public Man a() {
return new Son();
}
}
class Son extends Man {
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
}
3、当引用类型为接口时
public class test{
public static void main(String [] args) {
}
}
interface Eat{
public abstract void eatFood();
}
class Man{
public Eat a() {
return new Son();
}
}
class Son implements Eat{
public void eatFood() {
System.out.println("吃肉");
}
}