1. 程式人生 > >面向物件OOP基礎

面向物件OOP基礎

物件和類:
物件是OOP應用程式的組成部件。類是用於例項化物件的型別定義。在.NET中,所有的東西都是物件。

物件的生存週期:
物件通過呼叫它的一個建構函式來例項化。不需要物件時,就執行其解構函式,刪除它。

靜態和例項成員:例項成員只能在類的物件例項上使用,靜態成員只能直接通過類定義使用。它與例項不關聯。

介面:介面是可以在類上實現的公共屬性和方法的集合,可以給例項型別的變數賦予其類定義實現了該介面的任意物件的值,之後通過該變數,可以使用該介面定義的成員。

繼承:繼承是一個類定義派生於另一個類定義的機制。只能有一個父類。子類不能訪問父類的私有成員,但可以定義受保護的成員,受保護的成員只能在該類和派生於該類的子類中使用。所有的類都有一個System.Object結尾的繼承連。C#中,System.Object有一個別名object

多型性:從一個派生類中例項化的所有物件都可以看作是其父類的例項。

物件關係和特性:物件可以包含其他物件,也可以表示其他物件的集合。

using System;
using System.Collections.Generic;
using System.Text;

namespace CSharpBaseKnowledge
{
    public class Chapter8
    {
        public static void ManipulateDrink(HotDrink drink)
        {
            drink.AddMilk();
            drink.Drink();
            if
(drink is ICup) { ICup cupInterface = drink as ICup; cupInterface.Wash(); } Console.ReadLine(); } } public interface ICup { string Color { get; set; } int Volume { get; set; } void ReFill(); void
Wash(); } public class HotDrink { public HotDrink() { } public int Milk { get; set; } public int Sugar { get; set; } public virtual void Drink() { Console.WriteLine("HotDrink()" + ": Drink() "); } public void AddMilk() { Milk = 2; Console.WriteLine("HotDrink()" + ": AddMilk() 2 "); } public void AddSugar() { Sugar = 2; Console.WriteLine("HotDrink()" + ": AddSugar() 2 "); } } public class CupOfCoffee : HotDrink, ICup { public string Color { get; set; } public int Volume { get; set; } public override void Drink() { Console.WriteLine("CupOfCoffee()" + ": Drink() "); } public void ReFill() { Console.WriteLine(" CupOfCoffee ReFill()"); } public void Wash() { Console.WriteLine(" CupOfCoffee Wash()"); } } public class CupOfTea : HotDrink, ICup { public string Color { get; set; } public int Volume { get; set; } public void ReFill() { Console.WriteLine(" CupOfTea ReFill()"); } public void Wash() { Console.WriteLine(" CupOfTea Wash()"); } } }
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            // ArrayTest.TestArray();
            //  BaseTest.Chapter7();
            HotDrink xxHd = new HotDrink();
            Chapter8.ManipulateDrink(xxHd);
            CupOfCoffee cupcoffee = new CupOfCoffee();
            Chapter8.ManipulateDrink(cupcoffee);
            CupOfTea cuptea = new CupOfTea();
            Chapter8.ManipulateDrink(cuptea);

        }
    }

結果截圖
這裡寫圖片描述