Question

subclassResponsibility sender selector stuck even when subclasses have the method implemented.

I think the argument may cause this happen but is it?

and could anyone tell us why?

in abstract class we have this

fromString: aString
    "init with a string"

    ^self subclassResponsibility

and I am running this:

unit := (Units new fromString: aString)

then error occurs.

In which Units is the abstract class.

Travis Griggs's current approach could remove the error yet

are there doubledispatch for the instance creation method?

Était-ce utile?

La solution

Kind of shy on details up there, but it looks like it's doing exactly what you told it to.

The expression Units new returned a new Units instance and then you sent fromString: to that. Which you've implemented to return the result of sending subclassResponsibility.

If Units were truly an abstract class, I wouldn't have expected you to instantiate it (you don't generally send new to abstract classes, unless you're also messing with the behavior of new).

So I would have expected you to do something like:

unit := (YourRealSubclass new fromString: aString)

And that YourRealSubclass has a real implementation of fromString:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top