永发信息网

java 如何在子类方法中实例化父类的内部类?

答案:3  悬赏:0  手机版
解决时间 2021-04-24 06:15
public interface Interface1 {

void method1();
}

public class Class1 {
protected class Class1Inner implements Interface1{
public void method1() {
System.out.println("Class1Inner");
}
}
}

public class Class2 extends Class1{
public Interface1 getFatherInner() {
return super.new Class1Inner(); //报错,请问如何在不修改父类的前提下改正?
}
}
最佳答案
public interface Interface1 {
void method1();
}
public class Class1 {
protected class Class1Inner implements Interface1 {
public void method1() {
System.out.println("Class1Inner");
}
}
}
public class Class2 extends Class1 {
public Interface1 getFatherInner() {
// 因为Class1Inner是protected的,因此Class2中已经继承到Class1Inner了
return new Class1Inner();
}
}
全部回答
你这个父类中的内部类不是静态的。必须用父类实例来创建: new Class1().new Class1Inner(); 如果是static修饰的静态内部类,则可以用Class1.new Class1Inner();
对于有继承关系的类,子类可以通过这个关键字调用父类中的方法。 比如:super.query(); 此句话的意思是调用父类中的非私有方法query。 一般的用super关键字,调用类中的父类中重载构造方法。 比如:父类有个构造方法public a(){},同时又写了一个重载的构造方法public a(string name);那么,在子类中可以使用super(name)指明调用父类的哪个构造方法进行实例化父类对象。 大概就是这样的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
湖南长沙营业员薪资多少一个月?
欧联卫浴地址在哪,我要去那里办事
我的QQ三国图标为什么没有点亮呢?
支付宝密码忘了怎么办
上海市市级机关后勤岗位培训考试中心(外冈分
我的电脑为什么进不了qq农场?
会计证对市场营销专业有多大用处?
看一下若基亚6300图
1.概括这则寓言故事的内容 2.这则寓言故事的
我对感情这方面是新手,急需有经验的大侠教教
关于入秋的诗句,形容入秋的句子
iphone4中间有一束束怎么办
五个半月婴儿拉肚子
买的床用超纤做的对人体有害码?床头是超纤,
伤感的时候我能怎么办
推荐资讯
西北方向的大城市都有哪些
山四的太刀《传承神秘的水魔碧灵枯叶刀》值多
今天AU小爱为什么登陆不上去的、是不是更新了
怎么向好友索要衣服
请问什么样才叫做有成就,请有成就的人给个回
小偷要打开玻璃门的锁,会留下痕迹吗?、
安全队名和口号大全,德国纳粹斜向上手势的含
发展理念标语大全,求物业管理公司的服务口号
什么发型可以使脸显得小些
卓群文教这个地址在什么地方,我要处理点事
杜甫瞿唐两崖全唐诗,全唐诗或者全宋词里面有
声音怎么换成好听的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?