
рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рдЖрдП рд╣реИрдВред
рдореВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕
рдЬрд╛рд╡рд╛ 1.0 рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдм рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рдереЗред рдЙрдирдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐рдпрд╛рдВред
рд▓рдЧрд╛рддрд╛рд░ рдХреНрд╖реЗрддреНрд░
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдлрд╝реАрд▓реНрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рдпрдорд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреА рддрд░рд╣, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░реЛрдВ рдХреЗ рд╕рд╛рде:
- рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдЕрдВрддрд┐рдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ, рд╕реНрдерд┐рд░ рдФрд░ рдЕрдВрддрд┐рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЙрдиреНрд╣реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рдиреАрдЪреЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ")
public interface MyInterface { int MY_CONSTANT = 9; }
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, MY_CONSTANT рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрди рд╕рдВрд╢реЛрдзрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рд╕рд╛рд░ рд╡рд┐рдзрд┐рдпрд╛рдВ
рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрддреНрд╡ рдЗрд╕рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпрд╛рдБ рднреА рдирд┐рдпрдорд┐рдд рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВ:
- рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдХреЛрдИ рд╢рд░реАрд░ рдирд╣реАрдВ рд╣реИ
- рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рд╕рд╛рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рднрд▓реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
- рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрдореВрд░реНрдд рдФрд░ рдЕрдВрддрд┐рдо рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдВрддрд┐рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
public interface MyInterface { int doSomething(); String doSomethingCompletelyDifferent(); }
рдШреЛрдВрд╕рд▓рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛
рдЬрд╛рд╡рд╛ 1.1 рдиреЗ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВ: рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдЕрдиреНрдп рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдРрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рд╕реНрдерд┐рд░ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИрдВред
public interface MyInterface { class MyClass {
рдЧрдгрдирд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди
рдЬрд╛рд╡рд╛ 5 рдореЗрдВ рджреЛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдереЗ: рдЧрдгрдирд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рдиред рдЙрдиреНрд╣реЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЕрдВрджрд░ рднреА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
public interface MyInterface { enum MyEnum { FOO, BAR; } @interface MyAnnotation {
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░
рдЬрд╛рд╡рд╛ 5 рдиреЗ рдЬреЗрдиреЗрд░рд┐рдХ, рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреАред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдЬреЗрдирд░рд┐рдХ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЬрд╛рд╡рд╛ 5 рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ, рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд┐рдзрд┐ рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рддрд░реНрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреЙрдХреНрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЗрдВрдЯреЗрдЧрд░, рд╕реВрдЪреА, рдЬреВрддрд╛, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
interface Box<T> { void insert(T item); } class ShoeBox implements Box<Shoe> { public void insert(Shoe item) {
рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЗ
рдЬрд╛рд╡рд╛ 8 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдЖрдк рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рд╡реЗ рдЬрд╛рд╡рд╛ 8 рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реВ рдореЗрдВ, рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕рднреА рддрд░реАрдХреЗ рдЕрдореВрд░реНрдд рдереЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╕реНрдереИрддрд┐рдХ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
public interface MyInterface {
рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо
рдирд┐рдпрдорд┐рдд рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдРрд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реАрдзреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рди рдХрд┐ рдЙрд╕ рд╡рд░реНрдЧ рд╕реЗ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
MyInterface.staticMethod();
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрдИ рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рджреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рд╣реИред рдкрд╣рд▓реЗ рдХреМрди рд╕рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдФрд░ рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдПрдХ рд╕рд╛рдереА рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рд╣рд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рдПрдХ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рдереЗред
рдЖрдк рд╕реАрдзреЗ JDK: java.util.Collection рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ java.util.Collections рдХреЗ рд╕рд╛рде рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдЬрдЧрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдХрд╛рдп рднреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
public interface MyInterface { default int doSomething() { return 0; } }
рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рддрдп рдХреА рдЧрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред рдХреНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдРрд╕реЗ рд╡рд░реНрдЧ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ .String, рдмрд░рд╛рдмрд░реА рдФрд░ рд╣реИрд╢рдХреЛрдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреА рд╡реИрдзрддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдпрди рдЧреЛрдПрддреНрдЬрд╝ рдХреЗ рдЙрддреНрддрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВредрдпрд╣ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реАрдзреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рддреЛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╣рд▓реЗ рдХреНрдпреЛрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдереА?
рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдирд╛ рдПрдкреАрдЖрдИ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП "рдкреЗрдЯреНрд░рд┐рдлрд╛рдИ" рдХрд░реЗрдЧрд╛ (рдЗрд╕реЗ рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛)ред
рдкрд░рдВрдкрд░рд╛ рд╕реЗ, рдЬрд╛рд╡рд╛ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдмрд╣реБрдд рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирдП рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдирдП рддрд░реАрдХреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрдкрдпреБрдХреНрдд рд╣реЛред рдЗрд╕рд▓рд┐рдП, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдк рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред
рд╕рдВрдШрд░реНрд╖
рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рджреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рд╣реИред
interface A { default int doSomething() { return 0; } } interface B { default int doSomething() { return 42; } } class MyClass implements A, B { }
рдЕрдм рдПрдХ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рддреЛ, рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреИрд╕реЗ рдЬрд╛рдирддреА рд╣реИ рдХрд┐ рдХрд┐рди рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?
рдЙрд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдкрджреНрдзрддрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
interface A { default int doSomething() { return 0; } } interface B { default int doSomething() { return 42; } } class MyClass implements A, B {
рдирд┐рдЬреА рддрд░реАрдХреЗ
рдЬрд╛рд╡рд╛ 8 рдХреЗ рдЖрдЧрдорди рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рд╕рд╛рде, рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдЕрдм рди рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрддреЗ рд╕рдордп, рдпрд╣ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ рдХреЛ рд╕рд░рд▓ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ, рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдмрд╛рд╣рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рдФрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЬрд╛рд╡рд╛ 8 рдореЗрдВ, рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдирд┐рдЬреА рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рд▓рдВрдмреЗ, рдЬрдЯрд┐рд▓ рдФрд░ рд╢рд░реАрд░ рдХреА рддрдХрдиреАрдХреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
- рд╣реЗрд▓реНрдкрд░ рддрд░реАрдХреЗ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдпрд╣ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ,
рдЬрд╛рд╡рд╛ 9 рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ
, рдЖрдк рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЙрдирдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдирд┐рдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╢рд░реАрд░ рд╣реЛрддрд╛ рд╣реИ, рд╡реЗ рдЕрдореВрд░реНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ
- рд╡реЗ рдпрд╛ рддреЛ рд╕реНрдерд┐рд░ рдпрд╛ рдЧреИрд░-рд╕реНрдерд┐рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рд╡реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реЗ рд╣реИрдВ
- рд╡реЗ рдЕрдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- рдирд┐рдЬреА рддрд░реАрдХреЗ рдЕрдиреНрдп рдирд┐рдЬреА, рд╕рд╛рд░, рд╕реНрдерд┐рд░ рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ
- рдирд┐рдЬреА рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдХреЗрд╡рд▓ рдЕрдиреНрдп рд╕реНрдереИрддрд┐рдХ рдФрд░ рдирд┐рдЬреА рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣реА рдХреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИрдВ
public interface MyInterface { private static int staticMethod() { return 42; } private int nonStaticMethod() { return 0; } }
рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдо
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рд╡рд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдПрдХ рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рд╕реВрдЪреА рд╣реИ:
рдЬрд╛рд╡рд╛ 1.1
рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕
рдиреЗрд╕реНрдЯреЗрдб рдЗрдВрдЯрд░рдлреЗрд╕
рдЬрд╛рд╡рд╛ 5
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░
рд╕рдВрд▓рдЧреНрди рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг
рдиреЗрд╕реНрдЯреЗрдб рдПрдиреЛрдЯреЗрд╢рди
рдЬрд╛рд╡рд╛ 8
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ
рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЗ
рдЬрд╛рд╡рд╛ реп
рдирд┐рдЬреА рддрд░реАрдХреЗ