Java类的组合与继承 小问题分析(构造函数参数的传递方法 、数据覆盖的处理: 对比C++)

一、类的组合:

    1、初始化问题(构造函数的参数传递方法):

      在C++中,通常只要对象中不含有指针类数据的话,对象与对象之间是可以相互赋值且不会出错的,因此组合出来的类完全可以将传递过来的对象参数直接赋值给对应数据成员;

      而在java中,对象的定义是类似与C++中的指针的,所以直接在对象之间相互赋值有时是会出现错误的(会使所有对象均指向同一个存储区域,这时修改任意其中一个对象,都会造成其他对象的值也发生变化),因此,在构造函数中,我们一般不将传递过来的对象参数直接赋值给当前对象的数据成员,而是先为当前类指定一块存储区域,然后将对象参数的值通过基本数据类型的形式赋值到上述存储区域上。这样就保证了我们在修改对象参数指向的区域内容时不会再影响已经确定了值的当前对象。

 

二、继承:(:、extends)

1、初始化问题:

    在C++中,对派生类初始化时,有如下顺序:父类--派生类中对象成员--派生类中基本数据类型,且父类的初始化只能通过初始化列表来实现。

   在讲java之前,我们首先知道,java中对父类数据成员的初始化是通过    super(父类构造函数的参数列表)  来实现的。

   然后,java中派生类的初始化也遵循上述初始化顺序(且通过语法规则强制保证),即java中若super函数不是派生类构造函数的第一条语句的话,编译无法通过。

 

2、数据覆盖的处理方法:

    在C++中如果出现派生类将父类的成员覆盖,我们可以通过Father::(被覆盖的成员名)来调用被覆盖的成员。

    同样,在java,我们可以借助super.(被覆盖的参数名)来表示该量为父类中的成员。(或者说使用当前派生类时用this.+成员名,this可以省略;使用其父类中成员时,用super . +成员名   来实现)。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值