JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืžื ื’ื ื•ืŸ ืขืงื™ืคืช ืฉื™ื˜ื” ืื• Override ื‘-Java

ืžื ื’ื ื•ืŸ ืขืงื™ืคืช ืฉื™ื˜ื” ืื• Override ื‘-Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืฉืœื•ื! ืืชื” ื›ื‘ืจ ืžืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ื‘-Java ื•ื™ื•ื“ืข ืขืœื™ื”ืŸ ืจื‘ื•ืช. ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื ืชืงืœืช ื‘ืžืฆื‘ ืฉื‘ื• ื”ื™ื• ืฉื™ื˜ื•ืช ืจื‘ื•ืช ื‘ืžื—ืœืงื” ืื—ืช ืขื ืื•ืชื• ืฉื ืื‘ืœ ื˜ื™ืขื•ื ื™ื ืฉื•ื ื™ื. ืื ืืชื” ื–ื•ื›ืจ, ื‘ืื•ืชื ืžืงืจื™ื ื”ืฉืชืžืฉื ื• ื‘ืžื ื’ื ื•ืŸ ื”ืขืžืกืช ื™ืชืจ ืฉืœ ื”ืฉื™ื˜ื”. ื”ื™ื•ื ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืžืฆื‘ ืื—ืจ. ืชืืจื• ืœืขืฆืžื›ื ืฉื™ืฉ ืœื ื• ืฉื™ื˜ื” ืื—ืช ืžืฉื•ืชืคืช, ืื‘ืœ ื”ื™ื ืฆืจื™ื›ื” ืœืขืฉื•ืช ื“ื‘ืจื™ื ืฉื•ื ื™ื ื‘ื”ืชืื ืœืื™ื–ื• ืžื—ืœืงื” ื”ื™ื ื ืงืจืื”. ืื™ืš ืœื™ื™ืฉื ื”ืชื ื”ื’ื•ืช ื–ื•? ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื–ื”, ื‘ื•ืื• ื ื™ืงื— ื›ื™ืชืช ื”ื•ืจื™ื Animalืฉืžืฆื™ื™ื ืช ื—ื™ื•ืช ื•ื ื™ืฆื•ืจ ื‘ื” ืฉื™ื˜ื” voice- " ืงื•ืœ ":
public class Animal {

   public void voice() {

       System.out.println("Voice!");
   }
}
ืœืžืจื•ืช ืฉื–ื” ืขืชื” ื”ืชื—ืœื ื• ืœื›ืชื•ื‘ ืืช ื”ืชื•ื›ื ื™ืช, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืืช ื”ื‘ืขื™ื” ื”ืคื•ื˜ื ืฆื™ืืœื™ืช: ื™ืฉ ื”ืจื‘ื” ื‘ืขืœื™ ื—ื™ื™ื ื‘ืขื•ืœื, ื•ื›ื•ืœื "ืžื“ื‘ืจื™ื" ืื—ืจืช: ื—ืชื•ืœื™ื ืžื™ืื•, ื‘ืจื•ื•ื–ื™ื ืžืงืจืงืจื™ื, ื ื—ืฉื™ื ืฉื•ืฉื ื™ื. ื›ื™ืฆื“ ืคื•ืขืœ ืžื ื’ื ื•ืŸ ืขืงื™ืคืช ื”ืฉื™ื˜ื” - 2 ื”ืžื˜ืจื” ืฉืœื ื• ื”ื™ื ืคืฉื•ื˜ื”: ืœื”ื™ืžื ืข ืžื™ืฆื™ืจืช ืฉืœืœ ืฉื™ื˜ื•ืช ืœื”ืฆื‘ืขื”. ื‘ืžืงื•ื ืœื™ืฆื•ืจ ืฉื™ื˜ื•ืช voiceCat()ืœืžื™ืื•, voiceSnake()ืœืฉืจื™ืงื” ื•ื›ื•', ืื ื—ื ื• ืจื•ืฆื™ื voice()ืฉื”ื ื—ืฉ ื™ืฉืจืฉ, ื”ื—ืชื•ืœ ืžื™ืื•, ื•ื”ื›ืœื‘ ื™ื ื‘ื— ื›ืฉืงื•ืจืื™ื ืœืฉื™ื˜ื”. ื ื•ื›ืœ ืœื”ืฉื™ื’ ื–ืืช ื‘ืงืœื•ืช ื‘ืืžืฆืขื•ืช ืžื ื’ื ื•ืŸ ืขืงื™ืคืช ื”ืฉื™ื˜ื” (Override ื‘-Java) . ื•ื™ืงื™ืคื“ื™ื” ื ื•ืชื ืช ืืช ื”ื”ืกื‘ืจ ื”ื‘ื ืœืžื•ื ื— "ืขืงื™ืคื”": ื“ื—ื™ืคืช ืฉื™ื˜ื” ื‘ืชื›ื ื•ืช ืžื•ื ื—ื” ืขืฆืžื™ื ื”ื™ื ืื—ืช ื”ืชื›ื•ื ื•ืช ืฉืœ ืฉืคืช ืชื›ื ื•ืช ื”ืžืืคืฉืจืช ืœืชืช-ืžื—ืœืงื” ืื• ืžื—ืœืงื” ื™ืœื“ ืœืกืคืง ื™ื™ืฉื•ื ืกืคืฆื™ืคื™ ืฉืœ ืฉื™ื˜ื” ืฉื›ื‘ืจ ืžื™ื•ืฉืžืช ื‘ืื—ืช ืžืžื—ืœืงื•ืช ื”ืขืœ. ืื• ื›ื™ืชื•ืช ื”ื•ืจื™ื. ื–ื”, ื‘ืื•ืคืŸ ื›ืœืœื™, ื ื›ื•ืŸ. ืขืงื™ืคื” ืžืืคืฉืจืช ืœืš ืœืงื—ืช ืฉื™ื˜ื” ืฉืœ โ€‹โ€‹ืžื—ืœืงื” ืื‘ ื•ืœื›ืชื•ื‘ ื™ื™ืฉื•ื ืžืฉืœืš ืฉืœ ืฉื™ื˜ื” ื–ื• ื‘ื›ืœ ืžื—ืœืงื” ืฆืืฆืื™ืช. ื”ื™ื™ืฉื•ื ื”ื—ื“ืฉ "ื™ื—ืœื™ืฃ" ืืช ื”ื”ื•ืจื” ื‘ื›ื™ืชืช ื”ื™ืœื“. ื‘ื•ื ื ืจืื” ืื™ืš ื–ื” ื ืจืื” ืขื ื“ื•ื’ืžื”. ื‘ื•ืื• ื ื™ืฆื•ืจ 4 ื›ื™ืชื•ืช ืžืžืฉื™ื›ื•ืช ืœื›ื™ืชื” ืฉืœื ื• Animal:
public class Bear extends Animal {
   @Override
   public void voice() {
       System.out.println("ะ -ั€-ั€!");
   }
}
public class Cat extends Animal {

   @Override
   public void voice() {
       System.out.println("Meow!");
   }
}

public class Dog extends Animal {

   @Override
   public void voice() {
       System.out.println("Woof!");
   }
}


public class Snake extends Animal {

   @Override
   public void voice() {
       System.out.println("ะจ-ัˆ-ัˆ!");
   }
}
ืคืจื™ืฆืช ื—ื™ื™ื ืงื˜ื ื” ืœืขืชื™ื“: ื›ื“ื™ ืœืขืงื•ืฃ ืืช ื”ืฉื™ื˜ื•ืช ืฉืœ ืžื—ืœืงืช ื”ืื‘, ืขื‘ื•ืจ ืืœ ื”ืงื•ื“ ืฉืœ ื”ืžื—ืœืงื” ื”ืฆืืฆืื™ืช ื‘- Intellij IDE a, ื”ืงืฉ Ctrl+O ื•ื‘ื—ืจ ื‘-โ€œ Descendant methods... โ€ ืžื”ืชืคืจื™ื˜. ืชืชืจื’ืœื• ืœื”ืฉืชืžืฉ ื‘ืžืงืฉื™ ืงื™ืฆื•ืจ ืžื”ื”ืชื—ืœื”, ื–ื” ื™ืื™ืฅ ื›ืชื™ื‘ืช ืชื•ื›ื ื™ื•ืช! ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ื”ืชื ื”ื’ื•ืช ืฉืจืฆื™ื ื•, ืขืฉื™ื ื• ื›ืžื” ื“ื‘ืจื™ื:
  1. ื™ืฆืจื ื• ืฉื™ื˜ื” ื‘ื›ืœ ืžื—ืœืงื” ืฆืืฆืื™ืช ืขื ืฉื ื–ื”ื” ืœืžืชื•ื“ื” ื‘ืžื—ืœืงืช ื”ืื‘.
  2. ืืžืจื ื• ืœืžื”ื“ืจ ืฉืงืจืื ื• ืœืฉื™ื˜ื” ื–ื”ื” ืœื–ื” ืฉืœ ืžื—ืœืงืช ื”ืื‘ ืžืกื™ื‘ื”: ืื ื—ื ื• ืจื•ืฆื™ื ืœืขืงื•ืฃ ืืช ื”ื”ืชื ื”ื’ื•ืช ืฉืœื”. ืขื‘ื•ืจ ื”"ื”ื•ื“ืขื”" ื”ื–ื• ืœืžื”ื“ืจ, ืฉืžื ื• ื”ืขืจืช @Override ืขืœ ื”ืฉื™ื˜ื” .
    ื”ื”ืขืจื” @Override ื”ืžื•ืฆื‘ืช ืžืขืœ ืฉื™ื˜ื” ืื•ืžืจืช ืœืžื”ื“ืจ (ื•ื’ื ืœืžืชื›ื ืชื™ื ืฉืงื•ืจืื™ื ืืช ื”ืงื•ื“ ืฉืœืš): "ื”ื›ืœ ื‘ืกื“ืจ, ื–ื• ืœื ื˜ืขื•ืช ืื• ื”ืฉื›ื—ื” ืฉืœื™. ืื ื™ ื–ื•ื›ืจ ืฉืฉื™ื˜ื” ื›ื–ื• ื›ื‘ืจ ืงื™ื™ืžืช, ื•ืื ื™ ืจื•ืฆื” ืœืขืงื•ืฃ ืื•ืชื”".

  3. ื›ืชื‘ื ื• ืืช ื”ื™ื™ืฉื•ื ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืขื‘ื•ืจ ื›ืœ ื›ื™ืชื” ืฆืืฆื. ื›ืฉืงื•ืจืื™ื ืœื•, ื ื—ืฉ voice()ืฆืจื™ืš ืœืฉืจื•ืง, ื“ื•ื‘ ืฆืจื™ืš ืœื ื”ื•ื ื•ื›ื•'.
ื‘ื•ื ื ืจืื” ืื™ืš ื–ื” ื™ืขื‘ื•ื“ ื‘ืชื•ื›ื ื™ืช:
public class Main {

   public static void main(String[] args) {

       Animal animal1 = new Dog();
       Animal animal2 = new Cat();
       Animal animal3 = new Bear();
       Animal animal4 = new Snake();

       animal1.voice();
       animal2.voice();
       animal3.voice();
       animal4.voice();
   }
}
ืคืœื˜ ืงื•ื ืกื•ืœื”: ื•ื•ืื•! ืžื™ืื•! ืจืจืจ! ืฉืฉืฉ! ืžืขื•ืœื”, ื”ื›ืœ ืขื•ื‘ื“ ื›ืžื• ืฉืฆืจื™ืš! ื™ืฆืจื ื• 4 ืžืฉืชื ื™ ื”ืชื™ื™ื—ืกื•ืช ืฉืœ ืžื—ืœืงืช ื”ืื‘ Animal, ื•ื”ืงืฆื ื• ืื•ืชื ืœ-4 ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื•ื ื™ื ืฉืœ ื”ืžื—ืœืงื•ืช ื”ืฆืืฆืื™ื. ื›ืชื•ืฆืื” ืžื›ืš, ื›ืœ ื—ืคืฅ ืžืชื ื”ื’ ื‘ืฆื•ืจื” ืฉื•ื ื”. ืขื‘ื•ืจ ื›ืœ ืื—ืช ืžื”ืžื—ืœืงื•ืช ื”ืฆืืฆืื™ื•ืช, ื”ืฉื™ื˜ื” ืฉื ื“ื—ืคื” voice()ื”ื—ืœื™ืคื” ืืช ื”ืฉื™ื˜ื” "ื”ืžืงื•ืจื™ืช" voice()ืžื”ืžื—ืœืงื” Animal(ืฉืคืฉื•ื˜ ืžื•ืฆื™ืื” "Voice!" ืœืงื•ื ืกื•ืœื”). ื›ื™ืฆื“ ืคื•ืขืœ ืžื ื’ื ื•ืŸ ืขืงื™ืคืช ื”ืฉื™ื˜ื” - 3 ืœืขืงื™ืคื” ื™ืฉ ืžืกืคืจ ืžื’ื‘ืœื•ืช:
  1. ื”ืฉื™ื˜ื” ื”ื ื“ืจื•ืกืช ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ื‘ืขืœืช ืื•ืชื ืืจื’ื•ืžื ื˜ื™ื ื›ืžื• ืฉื™ื˜ืช ื”ืื‘.

    ืื ืžืชื•ื“ื” voiceื‘ืžื—ืœืงืช ืื‘ ืžืงื‘ืœืช ื›ืงืœื˜ String, ื”ืฉื™ื˜ื” ื”ื ืขืงืคืช ื‘ืžื—ืœืงืช ื”ื™ืœื“ ื—ื™ื™ื‘ืช ืœืงื‘ืœ ื’ื ื›ืงืœื˜ String, ืื—ืจืช ื”ืžื”ื“ืจ ื™ื–ืจื•ืง ืฉื’ื™ืื”:

    public class Animal {
    
       public void voice(String s) {
    
           System.out.println("Voice! " + s);
       }
    }
    
    public class Cat extends Animal {
    
       @Override//error!
       public void voice() {
           System.out.println("Meow!");
       }
    }

  2. ืœืžืชื•ื“ื” ื”ื ื“ื—ืงืช ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืื•ืชื• ืกื•ื’ ื”ื—ื–ืจื” ื›ืžื• ืฉื™ื˜ืช ื”ืื‘.

    ืื—ืจืช, ื ืงื‘ืœ ืฉื’ื™ืืช ืงื•ืžืคื™ืœืฆื™ื”:

    public class Animal {
    
       public void voice() {
    
           System.out.println("Voice!");
       }
    }
    
    
    public class Cat extends Animal {
    
       @Override
       public String voice() {         //error!
           System.out.println("Meow!");
           return "Meow!";
       }
    }

  3. ื’ื ืฉื™ื ื•ื™ ื”ื’ื™ืฉื” ืฉืœ ืฉื™ื˜ื” ืฉื ื“ื—ืงื” ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื•ื ื” ืžื”"ืžืงื•ืจื™":

    public class Animal {
    
       public void voice() {
    
           System.out.println("Voice!");
       }
    }
    
    public class Cat extends Animal {
    
       @Override
       private void voice() {      //error!
           System.out.println("Meow!");
       }
    }
ื“ื—ื™ืคืช ืฉื™ื˜ื” ื‘ื’'ืื•ื•ื” ื”ื™ื ืื—ื“ ื”ื›ืœื™ื ืœื™ื™ืฉื•ื ืจืขื™ื•ืŸ ื”ืคื•ืœื™ืžื•ืจืคื™ื–ื (ืขืงืจื•ืŸ ื”-OOP, ืขืœื™ื• ื“ื™ื‘ืจื ื• ื‘ื”ืจืฆืื” ื”ืื—ืจื•ื ื”). ืœื›ืŸ, ื”ื™ืชืจื•ืŸ ื”ืขื™ืงืจื™ ื‘ืฉื™ืžื•ืฉ ื‘ื• ื™ื”ื™ื” ืื•ืชื” ื’ืžื™ืฉื•ืช ืขืœื™ื” ื“ื™ื‘ืจื ื• ืงื•ื“ื. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื‘ื ื•ืช ืžืขืจื›ืช ืคืฉื•ื˜ื” ื•ื”ื’ื™ื•ื ื™ืช ืฉืœ ืžื—ืœืงื•ืช, ืฉืœื›ืœ ืื—ืช ืžื”ืŸ ืชื”ื™ื” ื”ืชื ื”ื’ื•ืช ืกืคืฆื™ืคื™ืช (ื›ืœื‘ื™ื ื ื•ื‘ื—ื™ื, ื—ืชื•ืœื™ื ืžื™ืื•), ืื‘ืœ ืขื ืžืžืฉืง ืื—ื“ - ืฉื™ื˜ื” ืื—ืช voice()ืœื›ื•ืœื ื‘ืžืงื•ื ืฉืœืœ ืฉื™ื˜ื•ืช ื•ื›ื•' voiceDog().voiceCat()
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION