Gonzalo
Gonzalo

Reputation: 193

Problems with classes (super new)

I've problems to figure it out what's happening in the following exercise, I'm learning Smalltalk, so I'm newbie.

Class A>>new ^super new initialize.

A>>initialize a:=0.

Class B>>new: aParameter |instance| instance := super new. instance b: instance a + aParameter. ^instance

B>>initialize b:=0.

The problem says what happen when the following code is executed:

B new:10.

But I can't not figure it out why instance variable does not belong to A class.

Thanks

Upvotes: 2

Views: 216

Answers (1)

Gonzalo
Gonzalo

Reputation: 193

I discovered the issue, the missing of super initialize, when the code was executed the initializer of "instance := super new." was the initializer of class B, that's why the A instance var was not initialized, the following code fix the issue:

B>>initialize

super initialize.

b:=0.

Upvotes: 3

Related Questions