4

I'm learning iOS development right now and I came across concrete and abstract class. What are the difference between these class. I've searched online but they're in other languages not in Objective-C.

rmaddy
  • 307,833
  • 40
  • 508
  • 550
user3526002
  • 515
  • 2
  • 7
  • 18
  • 1
    Update your question with an actual example of what you are asking about. – rmaddy May 05 '14 at 04:16
  • Hope this will help http://stackoverflow.com/questions/11319101/objective-c-creating-concrete-class-instances-from-base-class-depending-upon-t http://stackoverflow.com/questions/1034373/creating-an-abstract-class-in-objective-c – DilumN May 05 '14 at 04:16
  • This is a duplicate question and the accepted answer is misleading. – CrimsonChris May 06 '14 at 20:03

1 Answers1

9

There is nothing to stop a person from instantiating a abstract class. There is no distinction between concrete and abstract classes.

A concrete class is one that is actually used "as is" for some purpose. A abstract class is a class that is subclassed but has little functionality on it's own. Example NSObject is a abstract class(never use it as is). UIActivityIndicator is a concrete class(pretty much always use it as is).

The only difference is that concrete classes are ready out of the box, and abstract classes are meant to be subclassed class.