public abstract class A { int i=1; public void printI() { System.out.println("i="+i); ...
今天看到一个有趣的程序,如下: 程序的输出结果是:aclass B在java程序中父类的成员变量和子类的成员变量具有相同的名字,且在父类中将该变量打印出来。这个变量是用this指针指向的。对于this的说明。 .this关键字一般出现在类的方法声明中。 .哪个对象调用这个方法,this就指向哪个对象。因此这里的this指的是实例B。当然getClass得到的是B 对于为什么父类和子类中有相同成员变 ...
2018-01-17 22:46 1 2206 推荐指数:
public abstract class A { int i=1; public void printI() { System.out.println("i="+i); ...
1、关于私有成员变量无论父类中的成员变量是私有的、共有的、还是其它类型的,子类都会拥有父类中的这些成员变量。但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected、public方法(如getter、setter方法)来访问。 2、关于静态成员变量无论父类中 ...
先写父类还是先写子类: 一般我们在开发中先编写多个自定义类,写完之后发现多个类之间存在相同的代码,此时可以抽取一个父类。 我们以后做开发,都是基于框架/组件来做的,我们是在别人的基础之上继续开发。 好比别人提供清水房,我们只需要在清水房的基础之上装修,就可以使用。 以后,我们定义新的类回去 ...
/**子类会继承父类所有的属性和方法。 * 但是根据不同的权限标识符,子类不可见父类的私有变量,但可以通过父类的公共方法访问私有变量 * 所以对于重名变量,子类和父类都各有一份。 * 对于子类和父类中重名的方法,则为重写。即子类重写了父类的方法,用于多态。 * 同一个类中函数的签名不同,则为方法 ...
class person { private String name; private int age; public person (){} public person(String nam ...
首先,需要明确的是,无论是通过casting,还是通过将子类对象的reference赋值给父类变量,都无法改变该reference所指对象的真实类型。但当该reference的类型是父类时,将无法调用只存在于子类中的方法。 当子类拥有与父类同名的成员变量时,父类的成员变量并不会 ...
结果为 0 99 1 99 所以,当使用子类对象调用方法使用同名变量,是按照方法来判断使用哪一个变量,调用父类的方法,使用的是父类中的变量 , 调用子类的方法,使用的是子类中的变量 ...