java getclass-父类私有方法的getClass输出了子类的类名

问题描述

父类私有方法的getClass输出了子类的类名

TestCode
public class TestCode {

private String entityClass = getEntityClass();

private String getEntityClass(){
    System.out.println(getClass());
    System.out.println(getClass().getGenericSuperclass());
    //Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0];
    //return (Class<T>) trueType;
    return "1";
}

}

类二:
public class TestB extends TestCode {

public static void main(String[] args) {
    new TestB();
}

}

为什么输出结果为:
class test.TestB
class test.TestCode

父类的方法不是私有的吗。?为什么获得的类名会是子类的? 私有成员不是不应该被子类继承吗。

时间: 2024-09-30 08:34:08

java getclass-父类私有方法的getClass输出了子类的类名的相关文章

java-JAVA子类不能继承父类私有方法是么

问题描述 JAVA子类不能继承父类私有方法是么 父类都不能用他本身的私有方法,子类岂不是更不能用了,这一点是怎么证明的?举个例子 解决方案 父类本身的私有方法是可以被自己的其他方法调用的,但是这些私有方法子类是不能调用的,但是可能被间接调用. 例如下面的例子,父类的私有方法被一个公有方法调用了,那么子类继承这个公有方法后也就间接调用了父类的私有方法了.但是子类可直接访问的方法里却没有这个私有方法的. public class Parent { public void say(){ call();

为什么子类能够间接调用父类的私有方法

问题描述 子类的对象是不能直接调用父类的私有方法,但是却可以间接调用,求大家解答!代码如下classFather{publicFather(){System.out.println("Father");}privatevoidhello(){System.out.println("hello");}publicvoidsayHello(){System.out.println(thisinstanceofSon);this.hello();}}publicclass

利用java反射机制调用类的私有方法(推荐)_java

试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了.. 我写的一段简易实例代码如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * @author thomaslwq * @version 创建时间:Sep 4, 201

解决重写父类的方法且不会影响继承的子类的问题

解决重写父类的方法且不会影响继承的子类的问题 基类的方法被所有继承的子类继承,是不应该被修改的,如果继承的子类重写了基类的方法,那么,再从这个子类派生出子类的话,这个派生的子类接口已经破坏掉了统一的接口. 但有时候,我们需要一个子类能扩展基类的方法,但又不想破坏这个统一的接口,这时候,哥就来教你既能扩展功能,又能保证接口的统一性:) 首先做几个实验验证: 提供的源码如下: A类  B类  C类  (B类继承于A类,C类继承于B类) // // A.h // Super // // Copyrig

Java反射高级应用--利用反射调用类的私有方法修改私有方法值,以及替换Java的类成员数据

  package me.test; import java.lang.reflect.*;  //导入反射需要的包 public class ReflectTest {  public static void main(String[] args)  throws  Exception  {       /*  下面通过反射完成对一个对象中成员的替换    *   并且执行执行私有方法     *   完成对 Poiont类的对象中所有的 String的对象的d换成x    *   并且类中无

Java Reflection(七):私有变量和私有方法

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引访问私有变量访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是Java反射机制可以做到这一点.使用这个功能并不困难,在进行单元测试时这个功能非常有效.本节会向你展示如何使用这个功能. 注意:这个功能只有在代码运行在单机Java应用(standalone Java application)中才会有效,就像你做单元测试或者一些常规的应用程序一样.如果你在Java App

继承 覆盖 多态-java私有方法可以继承吗

问题描述 java私有方法可以继承吗 私有的成员和方法可以在子类中被继承吗,如果不能为什么不能,求解详细点 解决方案 java继承中的"缺陷":"覆盖"私有方法java继承中的"缺陷":"覆盖"私有方法Java 继承与初始化."覆盖"私有方法 解决方案二: 首先说私有的成员和方法不能被子类继承,这是java语法规范强制规定,也是面向对象设计的原则. 其次,脱离具体的语言,从面向对象角度来看,用private

Java 反射之私有字段和方法详细介绍_java

尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和私有方法是可行的,其实并没有那么困难. 注释:只有在单独的JAVA程序中运行该代码才有效,就像你做一些单元测试或者常规的程序.如果你尝试在JAVA APPLET内使用该方法,你需要稍稍修改SecurityManager.但是,因为你不是经常需要与它打交道,这里也就不再赘述了. 这里是本次内容的列表: 1.访问私有字段. 2.访问私有方法. 访问私有字段: 为了访问私有字段,你需要调用Class.getDeclaredField(Str

多态-java中为什么会自动执行子类重写父类的方法?

问题描述 java中为什么会自动执行子类重写父类的方法? 问题: 1.在main方法中我没有调用paint方法,为什么它会自动被调用? 2.老师说这是多态,可是多态不是需要三个条件实现么?继承,重写方法,父类引用指向子类对象,这里没有第三点啊 代码如下: public class GameFrame extends Frame{ public void launchFrame(){ setSize(500,500); setLocation(100,100); setVisible(true);