csdn经典题集锦<一>(关于继承)

本文通过一个简单的Java代码示例,展示了类继承的基本概念及其工作原理。具体地,文章定义了两个类——A和B,其中B继承自A,并分别在两个类中定义了一个名为i的整型变量。虽然B类覆盖了i的值,但在调用从A继承的方法printI()时,输出的是A类中的i值。这是因为方法调用时,父类并不知晓子类会覆盖其属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package package1;
public class A {  
  public int i=1;  
  public void printI() {  
  System.out.println("i="+i);  
  }  


package package1;

public class B extends A {  
public int i=2;  
public static void main(String[] args) {  
B b=new B();  
b.printI();  

   

结果输出i=1;
首先编译以后会有A.class和B.class文件,A的属性i存在于A.class中,B的属性i存在于B.class中,调用b.printI(); 的时候,现在B.class中查找有没有printI方法,结果发现没有,就追源到父类,于是在A.class中找到printI,然后调用该方法,然后该方法的i是A.class的i而不是b.class的i,因为父类本身没法知道子类也会有一个同名的属性,所以输出的就是A.class的i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值