在继承关系中,不管父类还是子类,这些类里面的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 修饰的方法和构造方法是前期绑定外,其他的方法...