์ค๋ ์ด์๊ฐ์๋ ์์(inheritance)๊ณผ ์ถ์ํด๋์ค, ์ธํฐํ์ด์ค์๋ํด์ ๋ฐฐ์ ์ต๋๋ค. ์ ๊ฐ ๋ชธ์ด ์ข์ง ์์์ ๋์ฑ ์ด๋ ค์ ๊ณ ๋๋ฌด ํ๋ค์์ต๋๋ค. ๊ทธ๋๋ ์ค์ค์ ์ ์๋์ ์ค๋ช ์ ๋ค์ผ๋ฉด์ ์ด๋ฒ์ฃผ๋ ํ์ดํ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
(๊ทผ๋ฐ ์ดํดํ๊ณ ์ง์์์ ์ ๋ฆฌ๋ฐ ์ฐ์ต๋ฌธ์ ๋ณด๋ฉด ์ด๋ป๊ฒ ํ๋๊ฑฐ์ฃ โฆโฆํ๋ฉด์ ๊น๋จน์ด์..)
๋ถ๋ชจ์ ์ํ(filed)์ ํ์(function)์ ๋ฌผ๋ ค ๋ฐ๋๋ค๋ก ์์ ๊ฐ๋ ์ ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค๋ฅผ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ๋ถ๋ชจ๋์ด ์์์๊ฒ ๋ฌผ๋ ค์ค๋ค, ์์ํด์ค๋คโฆ ๋ผ๊ณ ์๊ฐํ๊ฒ ์ต๋๋ค. ๋ค์ ๋งํด์ ๋ถ๋ชจํด๋์ค๊ฐ ๊ฐ๊ณ ์๋ ๋ณ์์ ํจ์๋ ์์์ด ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง ์์ํด๋์ค๊ฐ ๊ฐ๊ณ ์๋ ๋ณ์์ ํจ์๋ ๋ถ๋ชจ๊ฐ ๊ฐ์ง์ง ๋ชปํฉ๋๋ค.
class Animal {} // ์ง์น์ด ์๋ ๋๋ฌผ๋ก ๋ถ๋ชจํด๋์ค ์ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ Person์ด๋ผ๋ ํด๋์ค๋ ๋งํ๋ ํจ์์ ๊ฑท๋ ํจ์์ ์ด๋ฆ์ ๊ฐ์ก๋ค๊ณ ํด๋ณผ๊ฒ์.
class Animal {
Animal({
required this.name,
});
final String name;
void speak() {
print('$name ์๋ฆฌ๋ฅผ ๋ด๋ค');
}
void walk() {
print('$nmae ๊ฑท๋ค');
}
)
๋ถ๋ชจ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด๋ณด๊ฒ ์ต๋๋ค.
void main() {
Animal myPet = Animal(name: '๋์ ๋๋ฌผ');
print(myPet.name);
myPet.speak();
myPet.walk();
}
์์ ํด๋์ค๊ฐ ์ก์ข ๊ฐ ๋ผ๊ณ ํ๋ค๋ฉดโฆ
class FixDog {}
์์์ด ๋ถ๋ชจํด๋์ค๋ฅผ ์์๋ฐ๋ ๋ฐฉ๋ฒ์ extendsํค์๋๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
clss FixDog extends myPet {
FixDog(String name) : super(name: name);
}
์์์ธ ์ก์ข ๊ฐ๋ ๋ถ๋ชจ๊ฐ ๊ฐ๊ณ ์๋ ํจ์๋ฅผ ๋ด๊ฒ์ผ๋ก ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
FixDog dog = FixDog('์์');
dog.speak();
dog.walk();
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ์ ์์ํด๋์ค์ ์ถ๊ฐ์ ์ผ๋ก ์๊ธฐ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ธฐ๋ ํฉ๋๋ค.
void main() {
Animal myPet = Animal(name: '๋์ ๋๋ฌผ');
myPet.speak();
myPet.walk();
FixDog dog = Fixdog('์์');
dog.speak();
dog.walk();
dog.snap(); // ์ถ๊ฐ์ ์ผ๋ก ์๊ธฐ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
}
๋ค์ ๋งํด์ ๋ถ๋ชจ๋ ์์์ ํจ์๋ฅผ ์ธ์ ์๊ณ ์์์ ๋ถ๋ชจ์ ํจ์์ ๋ณ์๋ฅผ ๋ง์๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.