Java--方法参数类型以及返回值类型

  • 以类名作为形参:
    • 其形参类型和返回值类型为该类的对象
class SuperEx {
String s = "父类成员变量"; 
public void method(){
System.out.println("SupMethod");
}
}
class SubEx extends SuperEx {
String s = "子类成员变量";
public void method(){
System.out.println("SubMethod");
}
}
class Demo {
public static void main (String[] args) {
SubEx sub = new SubEx();//生成子类的对象
SuperEx sup = new SubEx();//父类的对象指向了子类的内存空间

System.out.println(sub.s);//子类成员变量
function( sub );// SubMethod
System.out.println(sup.s);// 父类成员变量
function( sup );// 调用方法,编译看左边,运行看右边SubMethod
}
public static void function (SuperEx sup) {
sup.method();
}
}
运行结果为:
子类成员变量
SubMethod
父类成员变量
SubMethod
  • 以抽象类作为形参:
    • 其形参类型和返回值类型均为该抽象类的子类对象
abstract class SuperEx {
String s = "父类成员变量"; 
public abstract void method();
}
class SubEx extends SuperEx {
String s = "子类成员变量";
public void method(){
System.out.println("SubMethod");
}
}
class Demo {
public static void main (String[] args) {
SubEx sub = new SubEx();//子类对象
SuperEx sup = new SubEx();//父类对象指向子类对象的内存空间

System.out.println(sub.s);// 子类成员变量
function( sub );// SubMethod
System.out.println(sup.s);// 父类成员变量
function( sup );// SubMethod,父类对象指向了子类,在调用方法时,编译看左边,运行看右边
}
public static void function (SuperEx sup) {
sup.method();
}
}
运行结果为:
子类成员变量
SubMethod
父类成员变量
SubMethod
  • 以接口为形参:
    • 其形参和返回值类型均为接口的实现类的对象
interface Inter {
public static final String s = "接口常量"; 
public abstract void method();
}
class SubEx implements Inter {
String s = "子类成员变量";
public void method(){
System.out.println("SubMethod");
}
}
class Demo {
public static void main (String[] args) {
SubEx sub = new SubEx();//子类对象
Inter in= new SubEx();//接口对象指向实现类的内存空间

System.out.println(sub.s);//子类成员变量
function( sub );// SubMethod
System.out.println(in.s);// 接口常量
function( in );
}
public static void function (Inter in) {
in.method();//SubMethod
}
}
运行结果为:
子类成员变量
SubMethod
接口常量
SubMethod
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值