(Java)继承与多态基础训练

【基础训练 1】类的继承

【目标】理解属性的隐藏与方法覆盖的概念。

(1) 继承关系中的覆盖与重载问题

(2)在子类中增加一个方法和 parent 类一样,为了显示差别, 在输出上加处理:

void m( ) {

System.out.println("x=" + x);

}

重新编译运行程序,观察结果变化,理解方法的覆盖关系

在此处,由于子类重写了父类的方,所以a.m()调用的是自己的方法和属性。

(3)在子类方法中,加入通过 super 引用访问父类方法和属性的代码

在这里,super代表父类对象引用,用super调用父类成员。

(4)站在父类引用看成员

修改以上 main 方法的引用类型,用父类引用变量引用子类对象。

parent a = new child( );

重新调试运行程序,观察结果变化。总结用父类引用访问成员的特点。

用父类引用变量引用子类对象,执行实例方法是对象的方法,而访问属性以及执行静态方法均取决于引用类型。

(5)将以上属性和方法均改为静态的,重新进行测试。最后,总结成员访问规律

【基础训练 2】方法的参数多态

【目标】了解方法调用的参数匹配处理。

(1)参数多态的方法匹配

(2)将上述 main 方法中的“b.m1(50)”改为“b.m1(50.2)”, 进行测试,发现什么问题。总结参数转换匹配规律。

传参时,参数类型要一致。

【实验总结】

继承与多态还有很多重要的知识点:当子类实例化时,不仅需要初始化子类成员变量,也需要初始化父类成员变量,初始化父类成员变量需要调用父类构造方法,子类使用super关键字调用父类构造方法。此外,super语句必须位于子类构造方法的第一行。发生多态的三个前提条件:继承,多态发生一定要子类和父类之间;覆盖,子类覆盖了父类的方法;

声明的变量类型是父类类型,但实例则指向子类实例。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值