1. рд╕рд╛рдорд╛рдиреНрдп рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
рдЖрдЬ рд╣рдо рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдПрдХ рд╕реНрдореЛрд░реНрдЧрд╛рд╕реНрдмреЛрд░реНрдб рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗред рдпрд╛рдж рд░рдЦреЗрдВ рдЬрдм рд╣рдордиреЗ ChessItem
рд╢рддрд░рдВрдЬ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдереА? рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ ЁЯЩВ
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдПрдХ draw()
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред рдЖрдк draw()
рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЯреБрдХрдбрд╝рд╛ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рдЦреБрдж рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред
рдпрджрд┐ draw()
рд╡рд┐рдзрд┐ ChessItem рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдереА, рддреЛ рд╣рдо рдЗрд╕реЗ рдкреАрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрд▓рд┐рдЧреЗрдВрдЯ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
class ChessBoard
{
public void drawAllChessItems()
{
// Add the pieces to the list
ArrayList<ChessItem> items = new ArrayList<ChessItem>();
items.add(new King());
items.add(new Queen());
items.add(new Bishop());
// Draw them regardless of their type
for(ChessItem item: items)
{
item.draw();
}
}
}
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рдХреЗ ChessItem
, рд╣рдо рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ: рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рд╣реИ: рдХрдХреНрд╖рд╛ draw()
рдореЗрдВ рд╕реАрдзреЗ рдШреЛрд╖рд┐рдд рд╡рд┐рдзрд┐ рдХреЛ ChessItem
рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╢рддрд░рдВрдЬ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдореЛрд╣рд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛, рдЗрд╕рд▓рд┐рдП рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИред рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реИ, ChessItem
рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реАрдзреЗ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╢рддрд░рдВрдЬ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИ - рдПрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИред рдУрдУрдкреА рдореЗрдВ рдЕрдореВрд░реНрддрддрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ : рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ (рдЬреЛ рд╕рднреА рдЯреБрдХрдбрд╝реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЕрдВрддрд░ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред
2. рд╕рд╛рд░ рд╡рд░реНрдЧ

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдЧ рд╣реИ: рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ ред рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЕрдореВрд░реНрдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рддреАрди рдмрд╛рддреЗрдВ рд╣реИрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдзрд┐
рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рдзрд┐ рдШреЛрд╖рдгрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡рд┐рдзрд┐ рдХреЛ рдЕрдореВрд░реНрдд рдмрдирд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдХреЛ рдХреЗрд╡рд▓ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдореЗрдердб рдХреЗ рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо abstract
рдХреАрд╡рд░реНрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг:
public abstract class ChessItem
{
public int x, y; // Coordinates
private int value; // The piece's value
public int getValue() // Ordinary method that returns value field
{
return value;
}
public abstract void draw(); // Abstract method. The implementation is missing.
}
рд╕рд╛рд░ рд╡рд░реНрдЧ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╛рд░ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ рднреА рд╣реИ, рддреЛ рдХрдХреНрд╖рд╛ рдХреЛ рднреА abstract
рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдирд╛
рдЖрдк рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рдРрд╕рд╛ рдХреЛрдб рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдХреЛрдб | рд╡рд┐рд╡рд░рдг |
---|---|
|
рдпрд╣ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ : |
|
рд▓реЗрдХрд┐рди рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ |
рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛
рдпрджрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЛ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЖрдкрдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЛ рднреА рд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреЛ рд╕реАрдзреЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдореВрд▓ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рд╡рд░реНрдЧ рдХреЛ рд╕рд╛рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ? рдЕрдореВрд░реНрдд рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ? рдФрд░ рд╕рд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рд╣рдо рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдЦрд╛рд▓реА рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рдереЗ?
рд╣рдоред рд▓реЗрдХрд┐рди рдпреЗ рдкреНрд░рддрд┐рдмрдВрдз private
рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рд╣рдо рдирд┐рдЬреА рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдПрдВ рд▓рд┐рдЦрддреЗ рд╕рдордп рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реИред рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХрд╛ рд▓реЗрдЦрдХ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд▓реЗрдЦрдХ рдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдореВрд░реНрдд рддрд░реАрдХреЛрдВ рдХреЛ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрдВрдЧреА, рдЙрддрдиреА рд╣реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдЙрдирдХреА рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдЙрдкрд╛рдп рдХрд╛ рд▓рд╛рдн рдЖрдкрдХреЛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЛ рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕реА рд╕реЗ рд╕рдм рдХреБрдЫ рдЧреБрдЬрд░рддрд╛ рд╣реИред