访问父类的父类的方法 | 笔试题
来源:互联网 发布:数据库服务端和客户端 编辑:程序博客网 时间:2024/05/16 07:57
睿思看到的一道有趣的秋招笔试题,转帖一下
public class A { protected String getString() { return "A"; }}public class B extends A { protected String getString() { return "B"; }}public class C extends B {}
要求在C中访问A的getString(),
首先想到super.super发现无法编译
然后想到强转,由于多态机制貌似行不通
又尝试下反射,this.getclass().getSuperClass().getSuperClass().getMethod(…).invoke(…);发现权限是protected
写法1
class A { protected String getString() { return "A"; }}class B extends A { protected String getString() { return "B"; }}public class C extends B { public static void main (String args[]){ Class a=C.class.getSuperclass().getSuperclass(); try{ Object o=a.newInstance(); A c=(A)o; System.out.println(c.getString()); }catch(Exception e){ } }}
写法2
class A{ protected String getString() { return "A"; }}class B extends A{ protected String getString() { return "B"; }}public class C extends B{ public static void main(String[] args) { Class a = C.class.getSuperclass().getSuperclass(); try { Method m = a.getDeclaredMethod("getString",null); System.out.println(m.invoke(a.newInstance(),null)); } catch (Exception e) { e.printStackTrace(); } }}
0 0
- 访问父类的父类的方法 | 笔试题
- 访问父类的private 方法
- 关于类方法的笔试题目
- [C++]类级别的访问修饰符 -- 由一道笔试题引起的一道破窗
- 子类重写父类方法的访问权限
- 通过反射访问父类的私有方法
- 子类能否访问或覆盖父类的private方法
- 继承、访问控制符、子类重载父类的方法、子类调用父类的方法
- JAVA方法访问修饰和类的成员访问修饰
- c++ 访问父类方法
- 子类覆盖父类方法时参数以及方法的访问权限问题
- 访问祖先类的虚方法
- 类 方法 成员的访问权限
- 访问类的方法和属性
- 跨进程访问类、资源的方法
- 反射-访问类变量的方法
- 类方法能否访问自己的属性
- 关于抽象类及其方法的访问
- 【LeetCode】210. Course Schedule II (Medium)
- NOJ 题目216:A problem is easy
- Linux中Less命令
- ubuntu下安装 kali linux 渗透工具包
- java获取对应字节数的内容
- 访问父类的父类的方法 | 笔试题
- STC单片机之1602显示时钟
- 判断数组是不是某二元查找树的后序遍历_Glodon(2)_20160921
- 终端手动集成cocoaPods
- Flink on Yarn部署
- LeetCode进阶之路(Unique Paths II)
- HTML5学习笔记(一)video的使用
- linux下的ctrl快捷键使用
- css基础知识(二)