//****************************************************** //****************************************************** //** CASTING //****************************************************** //****************************************************** // PRIVATE ///<summary> /// DEMO // ///</summary> private void _doDemoOfDownCasting() { // DECLARE WITH TYPE OF SUPERCLASS // ADVANCED: YOU MAY SOME DAY HAVE REASONS TO DO THIS Mixer mixer = new ElectricMixer(); // USE mixer.doMixing(); Debug.Log("mixer: " + mixer); // 1. NOTICE: THE INSTANCE HAS THIS METHOD // BUT THE COMPILER WILL NOW ALLOW //mixer.washElectricParts(); // 2. NOTICE: WHEN WE 'DOWNCAST' THIS, THEN IT WORKS. // DOWNCASTING IS TO MAKE THE TYPE BEHAVE AS A *MORE* SPECIFIC TYPE. // MORE SPECIFIC MEANS 'LIKE A SUBCLASS' IN THIS CASE (mixer as ElectricMixer).washElectricParts(); }
//****************************************************** //****************************************************** //** CASTING //****************************************************** //****************************************************** // PRIVATE ///<summary> /// DEMO // ///</summary> private void _doDemoOfDownCasting () { // DECLARE WITH TYPE OF SUPERCLASS // ADVANCED: YOU MAY SOME DAY HAVE REASONS TO DO THIS Mixer mixer = new ElectricMixer (); // USE mixer.doMixing(); Debug.Log ("mixer: " + mixer); // 1. NOTICE: THE INSTANCE HAS THIS METHOD // BUT THE COMPILER WILL NOW ALLOW //mixer.washElectricParts(); // 2. NOTICE: WHEN WE 'DOWNCAST' THIS, THEN IT WORKS. // DOWNCASTING IS TO MAKE THE TYPE BEHAVE AS A *MORE* SPECIFIC TYPE. // MORE SPECIFIC MEANS 'LIKE A SUBCLASS' IN THIS CASE (mixer as ElectricMixer).washElectricParts(); }