DotNet-101-CSharpFundamentals
  • Introduction
  • Part 0: Solution Setup
    • 1.0: Solution Setup
  • Part 1: Data Types
    • 1.0: Variables
    • 1.1: Data Types
    • 1.2: Data Types Table
    • 1.3: Challenge Answers
    • 1.4: Strings
    • 1.5: String Challenges
    • 1.6: Challenge Answers
    • 1.7: Integers
    • 1.8: Type Conversion
  • Part 2: Boolean Logic And Conditionals
    • 2.0: Boolean Type
    • 2.1: Boolean Logic
    • 2.2: Boolean Challenges
    • 2.3: Challenge Answers
    • 2.4: if, else if, else
    • 2.5: Switch Statements
    • 2.6: Ternary Operators
  • Part 3: Objects, Methods, C# Fundamentals
    • 3.0 Objects
    • 3.1 Properties
      • Challenge Answers
    • 3.2 Methods
      • Challenge Answers
    • 3.3 Method-Overloading
    • 3.4 Constructors
      • Challenge Answers
    • 3.5 Access Modifiers
  • Part 4: Collections Arrays Control Flow
    • 4.0 Arrays
    • 4.1 Loops
    • 4.2 Dictionaries
    • Challenge Answers
    • 4.3 List
    • 4.3a: Challenge Answers
  • Part 5: Inheritance/More On Object Oriented Programming
    • 5.0 Inheritance
    • 5.1 Polymorphism
    • 5.2 Encapsulation
    • 5.3 Getters And Setters
    • 5.4 Exception Handling
  • Part 6: Structs
    • 6.0 Structs
  • Part 7: Enums
    • 7.0 Enums
  • Part 8: Null Coalescing Operator
    • 8.0 Null Coalescing Operator
  • Part 9: Interfaces
    • 9.0 Interfaces
    • 9.1 Rules
    • 9.2 Code With Intent
  • Part 10: More C#
    • 10.0 DateTime
    • 10.1-LINQ
    • Challenge Answers
  • Part 11: Reference and Value Types
    • 11.0 Reference & Value Types
  • Eleven Fifty Style Guide
Powered by GitBook
On this page
  • Example
  • Discussion
  1. Part 9: Interfaces

9.1 Rules

Rules within C# that must be followed when it comes to interfaces

  1. An interface can only define the properties and method signatures. It does not do any implementation. We define what properties and methods the class should follow.

  2. Classes inherited from interfaces must honor the property and method signatures. They are promises between the two saying that they will have what the interface wants.

  3. Many classes can inherit from a particular interface.

  4. An interface may inherit from multiple base interfaces.

  5. A class may implement-inherit from multiple interfaces.

  6. A C# class may only inherit from one class.

Example

 interface IHuman
 {
    void Read();
    void Write(object obj);
    int Height { get; set; }
    int Weight { get; set; }
 }

 public class Human : IHuman
 {
    private int height;
    private int weight;
    public Human(string s)
        {
            MessageBox.Show(s);     
        }
        // implement the Read method
        public void Read()
        {
            MessageBox.Show(
                “Implementing the Read Method for IHuman”);
        }
        // implement the Write method
        public void Write(object o)
        {
            MessageBox.Show(
                “Implementing the Write Method for IHuman”);
        }
        // implement the property Height
        public int Height
        {
            get { return height; }
            set { height = value; }
        }
// implement the property Weight
        public int Weight
        {
            get { return weight; }
            set { weight = value; }
        }
}

Discussion

If you have written out this code in Visual Studio, try commenting out one of the methods or properties by typing // in front of the lines. You should get an error from visual studio saying you have not fulfilled all the promises of the interface.

Previous9.0 InterfacesNext9.2 Code With Intent

Last updated 7 years ago

Code Intent

Next: