java 访问对象成员变量吗_如何通过Java中的接口对象访问派生的类成员变量?

当您尝试通过子类对象保留超类的引用变量时,使用该对象只能访问超类的成员,如果尝试使用此引用访问派生类的成员,则会获得编译时错误。

示例interface Sample {

void demoMethod1();

}

public class InterfaceExample implements Sample {

public void display() {

System.out.println("This ia a method of the sub class");

}

public void demoMethod1() {

System.out.println("This is demo method-1");

}

public static void main(String args[]) {

Sample obj = new InterfaceExample();

obj.demoMethod1();

obj.display();

}

}

输出结果InterfaceExample.java:14: error: cannot find symbol

obj.display();

^

symbol: method display()   location: variable obj of type Sample

1 error

如果需要使用超类的引用访问派生类成员,则需要使用引用运算符强制转换引用。

示例interface Sample {

void demoMethod1();

}

public class InterfaceExample implements Sample{

public void display() {

System.out.println("This is a method of the sub class");

}

public void demoMethod1() {

System.out.println("This is demo method-1");

}

public static void main(String args[]) {

Sample obj = new InterfaceExample();

obj.demoMethod1();

((InterfaceExample) obj).display();

}

}

输出结果This is demo method-1

This is a method of the sub class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值