рдкреБрд╕реНрддрдХ "рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдгред 5 рд╡реАрдВ рдЗрдВрдЯред рдИрдбреАред "

рдЫрд╡рд┐рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (OOP) C ++, Java, C #, рд╡рд┐рдЬреБрдЕрд▓ рдмреЗрд╕рд┐рдХ .NET, рд░реВрдмреА, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реИред рд╡реЗ рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдкрд╛рдпрдерди рдФрд░ рдкреАрдПрдЪрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдЯ рд╡реАрд╕рдлреЗрд▓реНрдб рдПрдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рддрд░реАрдХреЗ рд╕реЗ рд╕реЛрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред

рдпрд╣ рдкреБрд╕реНрддрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдПрдХрддреНрд░реАрдХрд░рдг рдФрд░ рд╕рдВрдШ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭреЗрдВ, рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣реА рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рднрд╛рд╡реА рдмрдиреА рд╣реБрдИ рд╣реИрдВред рдпрд╣ рдкреНрд░рдХрд╛рд╢рди OOP рдХреА рдореВрд▓ рдиреАрдВрд╡ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ: рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬреЛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп, рд▓рдЪреАрд▓рд╛ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗред

рдареЛрд╕ рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрдд


1. рдПрд╕рдЖрд░рдкреА: рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд


рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╢рдмреНрдж "рдФрд░" рд╣реИ, рддреЛ SRP рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рд╡рд░реНрдЧ рдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдирд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЕрдХреНрд╕рд░ рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдЕрдзреНрдпрд╛рдп (рдФрд░ рд╕рд╛рде рд╣реА рдкреВрд░реЗ рдкреБрд╕реНрддрдХ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░реНрдХрд┐рд▓ рд╡рд░реНрдЧ рдХреЛ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред рдЖрдХрд╛рд░ рд╡рд░реНрдЧ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдореВрд░реНрдд рдХреИрд▓реНрдХреЗрд░рд┐рдпрд╛ () рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рдЖрдХрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреИрд▓реНрдХреНрд░рд┐рдпрд╛ () рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

abstract class Shape{
     protected String name;
     protected double area;
     public abstract double calcArea();
}

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░реНрдХрд┐рд▓ рд╡рд░реНрдЧ, рдЬреЛ рдХрд┐ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рд╣реИ:

class Circle extends Shape{
     private double radius;

     public Circle(double r) {
           radius = r;
     }
     public double calcArea() {
           area = 3.14*(radius*radius) ;
           return (area);
     };
}

рддреАрд╕рд░реА рд╢реНрд░реЗрдгреА, CalculateAreas, рдЖрдХреГрддрд┐ рд╕рд░рдгреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдХреГрддрд┐ рд╕рд░рдгреА рдЖрдХрд╛рд░ рдореЗрдВ рдЕрд╕реАрдорд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпрд╛рдБ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдЧ рдФрд░ рддреНрд░рд┐рдХреЛрдг рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

class CalculateAreas {
     Shape[] shapes;
     double sumTotal=0;
     public CalculateAreas(Shape[] sh) {
           this.shapes = sh;
     }
     public double sumAreas() {
           sumTotal=0;
           for (inti=0; i<shapes.length; i++) {
           sumTotal = sumTotal + shapes[i].calcArea() ;
           }
           return sumTotal ;
     }
     public void output() {
           System.out.printIn("Total of all areas = " + sumTotal);
     }
}

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ CalculateAreas рд╡рд░реНрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рднреА рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрд┐рдирддреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред

рд╣рдо рдЙрдкрдпреБрдХреНрдд рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрд╕реНрдЯрд╕реНрдкреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЛрдб рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

public class TestShape {
      public static void main(String args[]) {

            System.out.printin("Hello World!");

            Circle circle = new Circle(1);

            Shape[] shapeArray = new Shape[1];
            shapeArray[0] = circle;

            CalculateAreas ca = new CalculateAreas(shapeArray) ;

            ca.sumAreas() ;
            ca.output();
      }
}

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рд╣реИ, рд╣рдо рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░реАрд╕ рд╡рд░реНрдЧ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдореВрд▓ рдкреНрд░рд╢реНрди (рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛) рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ () рд╡рд┐рдзрд┐ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЪрд╛рд╣реЗ рдЖрдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдмрджрд▓ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЕрдЪрд╛рдирдХ HTML рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рджреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдирд╣реАрдВ, рддреЛ рд╣рдореЗрдВ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рднреА рдХреНрдпреЛрдВрдХрд┐ рджреЗрдпрддрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд╛рд░реНрдп рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред "рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ, рдХреЗрд╡рд▓ рдПрдХ, рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдореВрд▓ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ HTML рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП:

class CaiculateAreas {;
     Shape[] shapes;
     double sumTotal=0;

     public CalculateAreas(Shape[] sh) {
           this.shapes = sh;
     }

     public double sumAreas() {
           sumTotal=0;

           for (inti=0; i<shapes.length; i++) {

                sumTotal = sumTotal + shapes[i].calcArea();

           }

                return sumTotal;
           }
}
class OutputAreas {
     double areas=0;
     public OutputAreas (double a) {
           this.areas = a;
     }

           public void console() {
           System.out.printin("Total of all areas = " + areas);
     }
     public void HTML() {
           System.out.printIn("<HTML>") ;
           System.out.printin("Total of all areas = " + areas);
           System.out.printin("</HTML>") ;
     }
}

рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдЬрд░реВрд░рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдзрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON, рддреЛ рдЖрдк рдЗрд╕реЗ рдХреИрд▓реНрдХреБрд▓рд░реЗрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ OutputAreas рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЖрдк рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд▓реНрдХреЗрдЯреЗрд░рд╛рд╕ рд╡рд░реНрдЧ рдХреЛ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

2. OCP: рдЦреБрд▓рд╛ / рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд


рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рдПрдХ рд╢реЗрдк рдХрд▓рдХреНрдпреВрд▓рд░ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдПрдХ рдЖрдпрдд рд╡рд╕реНрддреБ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЖрдпрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

class Rectangle{
     protected double length;
     protected double width;

     public Rectangle(double 1, double w) {
           length = 1;
           width = w;
     };
}
class CalculateAreas {
     private double area;

     public double calcArea(Rectangle r) {

           area = r.length * r.width;

           return area;
     }
}
public class OpenClosed {
      public static void main(String args[]) {

            System.out.printin("Hello World");

            Rectangle r = new Rectangle(1,2);

            CalculateAreas ca = new CalculateAreas ();

            System.out.printin("Area = "+ ca.calcArea(r));
      }
}

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдЖрдпрддреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕реАрдорд╛ рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗрдкрди / рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рд╣рдо рд╕рд░реНрдХрд▓ рдХреНрд▓рд╛рд╕ рдХреЛ рдХреИрд▓реНрдХреБрд▓реЗрдЯрдЖрд░реЗ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ), рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЖрдХреГрддрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕реАрдзреЗ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ getArea () рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓, рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рд╕реАрдзреЗ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрдХрд▓ рд╡рд░реНрдЧ)ред рдЕрдм рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрдк рдХреНрд▓рд╛рд╕ рдмрдВрдж рд╣реИред

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЖрдпрддреЛрдВ рдФрд░ рд╣рд▓рдХреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЖрдХреГрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

abstract class Shape {
      public abstract double getArea() ;
}
class Rectangle extends Shape
{

      protected double length;
      protected double width;

      public Rectangle(double 1, double w) {
            length = 1;
            width = w;
      };
      public double getArea() {
            return length*width;
      }

}
class Circle extends Shape
{
      protected double radius;

      public Circle(double r) {
            radius = r;
      };
      public double getArea() {
            return radius*radius*3.14;
      }
}
class CalculateAreas {
      private double area;

      public double calcArea(Shape s) {
            area = s.getArea();
            return area;
      }
}

public class OpenClosed {
      public static void main(String args[]) {

            System.out.printiIn("Hello World") ;

            CalculateAreas ca = new CalculateAreas() ;

            Rectangle r = new Rectangle(1,2);

            System.out.printIn("Area = " + ca.calcArea(r));

            Circle c = new Circle(3);

            System.out.printIn("Area = " + ca.calcArea(c));
}
}

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рд╢реЗрдк рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдХреИрд▓рдХреНрд▓реЗрдЯрдЕрд░реЗрд╕ () рдкрджреНрдзрддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдк рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдореВрд▓ рд╡рд░реНрдЧ рдХреЛ рд╕рдВрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐, "рд╡рд┐рд╕реНрддрд╛рд░" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реНрд╡рдпрдВ SOLID рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИред рдЗрд╕реЗ рдХреБрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрдЬрд╛рдп рд░рдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рдПрдХ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╕рдордп, рдХреЛрдб рдЕрдиреНрдп SOLID рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдХреЛрдб рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

3. рдПрд▓рдПрд╕рдкреА: рд▓рд┐рд╕реНрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд


рд▓рд┐рд╕рдХреЛрд╡ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдмрдЪреНрдЪреЗ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд╕рд╛рде рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд░реНрдЧ рдХреЛрдИ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЛ рднреА рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреБрдЫ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд┐рд╕реНрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХрд╛рд░ рдХрд╛ рд╕рд╛рд░ рд╡рд░реНрдЧ рд╣реИред рдЖрдпрдд рд╡рд░реНрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рд░ рдХреИрд▓реНрдХреЗрд░рд┐рдпрд╛ () рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд╡рд╛рдпрд░ рд╡рд░реНрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рдЖрдпрдд рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

abstract class Shape{
      protected double area;

      public abstract double calcArea();
}
class Rectangle extends Shape{
      private double length;
      private double width;

      public Rectangle(double 1, double w) {
            length = 1;
            width = w;
      }
      public double calcArea() {
            area = length*width;
            return (area) ;
      };
}
class Square extends Rectangle{
      public Square(double s) {
            super(s, Ss);
      }
}

public class LiskovSubstitution {
      public static void main(String args[]) {

            System.out.printIn("Hello World") ;

            Rectangle r = new Rectangle(1,2);

            System.out.printin("Area = " + r.calcArea());

            Square s = new Square(2) ;

            System.out.printin("Area = " + s.calcArea());
      }
}

рдЕрдм рддрдХ, рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛: рдЖрдпрдд рдЖрдХреГрддрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрдЧ рдЖрдпрдд рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ - рдФрд░ рдлрд┐рд░, рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рд╣реИ рдирд╛?

рдЕрдм рдПрдХ рджрд╛рд░реНрд╢рдирд┐рдХ рдкреНрд░рд╢реНрди рдкреВрдЫрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рдПрдХ рд╡рд░реНрдЧ рдЕрднреА рднреА рдПрдХ рдЖрдпрдд рд╣реИ? рдХрдИ рдкреБрд╖реНрдЯрд┐рдорд╛рд░реНрдЧ рдореЗрдВ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред рдпрджреНрдпрдкрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдПрдХ рдЖрдпрдд рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЧреБрдг рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗред рдПрдХ рдЖрдпрдд рдПрдХ рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рд╣реИ (рд╡рд┐рдкрд░реАрдд рдкрдХреНрд╖ рд╕рдорд╛рди рд╣реИрдВ), рдПрдХ рд╡рд░реНрдЧ рдХреА рддрд░рд╣ред рдЗрд╕реА рд╕рдордп, рд╡рд░реНрдЧ рднреА рдПрдХ рд╕рдорднреБрдЬ рд╣реИ (рд╕рднреА рдкрдХреНрд╖ рд╕рдорд╛рди рд╣реИрдВ), рдЬрдмрдХрд┐ рдЖрдпрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдорддрднреЗрдж рд╣реИрдВред

рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдпрддреЛрдВ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЖрдпрдд рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ:

public Rectangle(double 1, double w) {
      length = 1;
      width = w;
}

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд░реНрдЧ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдореВрд▓ рд╡рд░реНрдЧ, рдЖрдпрдд, рджреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред

class Square extends Rectangle{
      public Square(double s) {
      super(s, Ss);
}

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рджреЛ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдпрд╣реА рд╣реИ, рд╕реНрдХреНрд╡рд╛рдпрд░ рд╡рд░реНрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдПрдХ рдЖрдпрдд рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЛ рдмрд╛рд░ рдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЧреБрдорд░рд╛рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рднрдпрд╛рд╡рд╣ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░, рд╢рд╛рдпрдж, рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдпред рдЬрдм рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░реЗрдХ рд▓реЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ - рд╢рд╛рдпрдж рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдХреИрд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рдП? рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдЖрдк рдЖрдпрдд рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧрд╛рдХрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреНрд╡рд╛рдпрд░ рдЖрдпрдд рд╡рд░реНрдЧ рдХрд╛ рдмрдЪреНрдЪрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

abstract class Shape {
      protected double area;

      public abstract double calcArea();
}

class Rectangle extends Shape {

      private double length;
      private double width;

      public Rectangle(double 1, double w) {
            length = 1;
            width = w;
      }

      public double calcArea() {
            area = length*width;
            return (area);
      };
}

class Square extends Shape {
      private double side;

      public Square(double s) {
            side = s;
      }
      public double calcArea() {
            area = side*side;
            return (area);
      };
}

public class LiskovSubstitution {
      public static void main(String args[]) {

             System.out.printIn("Hello World") ;

             Rectangle r = new Rectangle(1,2);

             System.out.printIn("Area = " + r.calcArea());

             Square s = new Square(2) ;

             System.out.printIn("Area = " + s.calcArea());
      }
}

4. рдЖрдИрдПрд╕рдкреА: рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢реЗрдпрд░рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд


рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЫреЛрдЯреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЦрд╛рдиреЗ () рдФрд░ рдореЗрдХрдУрдирд┐рдЬрд╝ ():

interface IMammal {
     public void eat();
     public void makeNoise() ;
}
class Dog implements IMammal {
     public void eat() {
           System.out.printIn("Dog is eating");
     }
     public void makeNoise() {
           System.out.printIn("Dog is making noise");
     }
}
public class MyClass {
      public static void main(String args[]) {

            System.out.printIn("Hello World");

            Dog fido = new Dog();
            fido.eat();
            fido.makeNoise()
      }
}

рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ
рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :

interface IEat {
     public void eat();
}
interface IMakeNoise {
     public void makeNoise() ;
}
class Dog implements IEat, IMakeNoise {
     public void eat() {
           System.out.printIn("Dog is eating");
     }
     public void makeNoise() {
           System.out.printIn("Dog is making noise");
     }
}
public class MyClass {
      public static void main(String args[]) {

            System.out.printIn("Hello World") ;

            Dog fido = new Dog();
            fido.eat();
            fido.makeNoise();
      }
}

рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдЗрдВрдЯрд░рдлреЗрд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдПрдХрд▓ рд╕реНрддрдирдзрд╛рд░реА рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рдорд╛рди рд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рд╣реА рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрддрдирдзрд╛рд░реА рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╕реНрддрдирдкрд╛рдпреА рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рд╣реИ рдЬреЛ рднреЛрдЬрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рддреНрд╡рдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд╖рдХ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЦрд╛рдиреЗ () рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реЗ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирдП рд╕реНрддрдирдкрд╛рдпреА рдХреЗ рд▓рд┐рдП рдмреЗрдорд╛рдиреА рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдирдкрд╛рдпреА рдХреЗ рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд░рд╛рджрд╛ рдерд╛ред

┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ
┬╗ рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
┬╗ Habrozhitelami рдХреЗ рд▓рд┐рдП рдЕрдВрд╢

рдХреВрдкрди рдкрд░ 25% рдЫреВрдЯ -OOP

рдкреБрд╕реНрддрдХ рдХреЗ рдкреЗрдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рднреБрдЧрддрд╛рди рдкрд░, рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкреБрд╕реНрддрдХ рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред

Source: https://habr.com/ru/post/undefined/


All Articles