Class vs. Interface

后端 未结 10 1464
孤城傲影
孤城傲影 2020-12-10 03:18

I have a quite basic question:

When should we decide to use Interface or Class for a specific class?

For example: says we have 2 classes, Customer and Doctor

10条回答
  •  北海茫月
    2020-12-10 03:43

    • Read the wikipedia article

    • Read a book, then read the chapters about OOP again

    • In your example, Person should be a class, because it contains implementation details that are common to both a Doctor and a Customer.

    • interfaces don't have (and don't need) implementation details - they only denote what objects which implement them are doing. Not how. Why is this useful? Because when you are using the object you don't care how it's going to do its job.

    Let's take a look at a simple example - there is an interfaces Comparable (in Java at least). It denotes that its implementors can be compared with each other. So you can have two classes:

    class Doctor implements Comparable {..}
    
    class Customer implements Comparable {..}
    

    Now you can have a common method which takes any set of objects which implement Comparable and call comparable1.compareTo(comparable2), because you know they can perform comparison - it's denoted by their interface.

提交回复
热议问题