在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来的那个类的实例对象,所以在父类中你可以用this获取到子类的信息!

package com.urthinker.module.test;import org.junit.Test;abstract class BaseDao{ public void getType() { System.out.println(this.getClass().getName()); //com.**.test.SubDao }}public class SubDao extends BaseDao{ @Test public void test1() { getType(); }}

给你写了3个类:

package cn.test;

public class A {

public void test(){

System.out.println( this .getClass());

System.out.println( this .getClass().getSimpleName());

System.out.println( this .getClass().getName());

package cn.test;

public class B extends A{

Test类:

package cn.test;

public class Test {

* @param args

在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来的那个类的实例对象,所以在父类中你可以用this获取到子类的信息!package com.urthinker.module.test;import org.junit.Test;abstract class BaseDao{ public void getType() { System.out.println(this.ge... 继续分析Spring的历史漏洞,本篇记录Spring Data Commons的远程代码执行漏洞(CVE-2018-1273)的分析。 0x01 环境搭建 使用 的Spring Data Example Projects提供的示例代码。 但该项目中包含有15个子模块,如果将其整体导入IDEA,则需要下载所有模块中的依赖,显然这是没有必要的。通过参考这篇文章,发现只需导入web模块中的...
. class 是类的访问方式,一般 使用 类名 . class 。get Class 是个非静态方法,只能 使用 对象.get Class ()方法。. class 与get Class ()返回结果相同,返回的是详细的类的名称,包括路径名。getSimpleName是获得 类名 简称,一般和上面的结果连用,即. class .getSimpleName()或者get Class ().getSimpleName()。 上案例:定义 父类 Fruit和 子类 Apple,案例和打印结果为: // 父类 public class Fru...
2、对于成员变量的覆盖,this在哪个类就指向哪个类的成员变量,没有多态。 即方法有多态性,但是成员变量不显示多态性 对象的多态性,只适用于方法,不适用于属性(因为属性不存在覆盖一说,即属性不能被覆盖,父 子类 中都定义的相同属性, 子类 在调用该属性时,运行结果为 父类 的值) 如下代码: public class Demo { public static void main(String[] args) { Java 三大特性,封装、继承、多态,一直没搞懂其中多态是什么,最近研究了一下,关于 父类 子类 之间的调用。下面是一个测试类,源代码如下: 1 package com.test; 3 public class Base Class { 5 /** 6 * @param args 7 */ 8 publi... 1、 java 父类 引用指向 子类 对象时动态绑定针对的只是 子类 重写的成员方法; 2、 父类 引用指向 子类 对象时, 子类 如果重写了 父类 的可重写方法(非private、非 final 方法),那么这个对象调用该方法时默认调用的时 子类 重写的方法,而不是 父类 的方法; 3、对于 java 当中的方法而言,除了final,static,private 修饰的方法和构造方法是前期绑定外,其他的方法...