Re: VC# vs. ObjC and partial abstract classes
Re: VC# vs. ObjC and partial abstract classes
- Subject: Re: VC# vs. ObjC and partial abstract classes
- From: Sixten Otto <email@hidden>
- Date: Tue, 18 Mar 2014 22:14:47 -0700
On Tue, Mar 18, 2014 at 7:29 PM, Luther Baker <email@hidden> wrote:
> A _better_ analogy to an Objective-C @protocol would be a formal Java
> interface.
>
Sure. And the same in C# (which the OP was asking about).
> So, Kyle may have good reasons for his answer - but if I understand the
> essence of your question, I would say yes, a pure "abstract class" (where
> no methods are implemented) or a formal "interface" (where method
> signatures have no implementation) in a language like Java ... would both
> indeed be _similar_ to a formal @protocol in Objective-C.
>
The significant difference, though, between an abstract class in Java or
C#, and a protocol in Objective-C, is that the former may have substantial
implementation associated with it for the benefit of subclasses, and just
not be directly instantiable.
(Something like UIKit's UIResponder might be a good choice for this kind of
thing, if Objective-C supported it: it provides a lot of common machinery
you wouldn't want each conforming class to implement separately, but also
isn't something you'd use on its own.)
Another way that Objective-C accomplishes some of the same goals is through
delegation. You don't, for instance, subclass a UITableView to provide its
data, you provide a delegate that conforms to UITableViewDataSource; which
protocol does have a couple of required methods.
Sixten
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden