728x90
반응형

상속 13

[ Python ] 스타크래프트 후반전

# 스타크래프트 전반전 # 텍스트 기반으로 실제 게임을 하는 것처럼 프로젝트 만들기. from random import randint # 일반 유닛 class Unit: def __init__(self, name, hp, speed=0): self.name = name self.hp = hp self.speed = speed print("{0} 유닛이 생성되었습니다.".format(self.name)) def move(self, location): print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) def damaged(self, damage): print("{0} : {1} 데미지를 입었습니다.".format(s..

Python 2021.03.07

[ Python ] 메소드 오버라이딩

# 메소드 오버라이딩 # 일반 유닛 class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed def move(self, location): print("[지상 유닛 이동]") print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) # 상속받을 때 '클래스명(상속받을 클래스명)' # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage, speed=0): Unit.__init__(self, name, hp, speed) # 부..

Python 2021.03.07

[ Python ] 다중 상속.

# 다중 상속 : 부모 클래스를 여러개 상속 받는. # 일반 유닛 class Unit: def __init__(self, name, hp): self.name = name self.hp = hp # 상속받을 때 '클래스명(상속받을 클래스명)' # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage): Unit.__init__(self, name, hp) # 부모에게 값을 넘겨주어 초기화하는 작업. self.damage = damage def attack(self, location): print("{0} : {1} 방향으로 적군을 공격 합니다. [공격력 : {2}]".format( self.name, location, self..

Python 2021.03.07

[ Python ] 상속

# 상속 # 일반 유닛 class Unit: def __init__(self, name, hp): self.name = name self.hp = hp # 상속받을 때 '클래스명(상속받을 클래스명)' # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage): Unit.__init__(self, name, hp) # 부모에게 값을 넘겨주어 초기화하는 작업. self.damage = damage def attack(self, location): print("{0} : {1} 방향으로 적군을 공격 합니다. [공격력 : {2}]".format( self.name, location, self.damage )) def damaged(s..

Python 2021.03.07

[ java ] 추상 클래스의 형 변환

package beginJava; public class ComputerTest { public static void main(String[] args) { Computer c1 = new Computer(); // Computer 추상 클래스로 오류 Computer c2 = new DeskTop(); Computer c3 = new NoteBook(); // NoteBook 추상 클래스로 오류 Computer c4 = new MyNoteBook(); } } 추상 클래스는 모두 구현되지 않은 추상 메서드를 가지고 있기 때문에 인스턴스를 생성할 수 없다. 추상 클래스의 형 변환 가능 하지만 추상 클래스도 형 변환이 가능하다. 위와 같이 상위 클래스 Computer를 상속 받았으므로 Computer 형으로 ..

Java 2021.02.09

[ java ] 추상 클래스(abstract class) 2

추상 메서드를 모두 구현하지 않고 1개만 구현한 추상 클래스 package beginJava; public abstract class NoteBook extends Computer { @Override public void display() { System.out.println("DeskTop display()"); } } 상속 받은 추상 클래스의 추상 메서드를 모두 구현하지 않으면 하위 클래스도 추상 클래스가 된다. 추상 클래스가 된 하위 클래스에서는 구현되지 않은 나머지 추상 메서드에 대해서 구현하면 아래와 같이 추상 클래스가 되지 않는다. package beginJava; public class MyNoteBook extends NoteBook { @Override public void typing..

Java 2021.02.09

class, extends 설명

Class 자바스크립트에서는 함수처럼 활용된다. constructor 클래스 인스턴스를 생성하고 생성한 인스턴스를 초기화하는 역할을 한다. 클래스를 구성하기 위한 껍데기 // Class class Person { constructor(region_, gender_) { this.region = region_; this.gender = gender_; } greetings(val = 'an-nyeong') { console.log(val); } } let person = new Person('Korea', 'male'); console.log(person); person.greetings(); // extends 상속 class American extends Pe..

javascript 2021.01.16

[ Java ] 상속 protected 설명

[ Java ] 상속 protected 설명 - 외부에 오픈은 되지 않지만 자식에게 상속은 가능한. - 자식이 자유롭게 변수를 사용할 수 있다. ※ private를 사용해서 getter, setter를 주로 사용했지만 일손을 줄이기 위해서 상속을 해주고 protected로 변수 선언을해서 자식 클래스가 자유롭게 사용할 수 있도록 한다. - private로 한다면 public 메서드로 getter, setter 메서드를 만들어서 사용해야 한다. - protected로 변수를 선언한다면 상속을 받은 자식 클래스는 원하는대로 변수를 사용할 수 있다. - 굳이 getter, setter를 해줄 필요가 없다.

Java 2020.09.29

스트래티지 패턴

스트래티지 패턴. 상속을 한 클래스에서 변경이 될수있는 특정매서드를 클래스 하나로 묶어서 그걸 운용하는 패턴 오리는 헤엄친다 청둥오리 집오리 는 헤엄치는게 가능. 하지만 로봇오리는 헤엄치지 못한다. 여기서 헤엄치는걸 헤엄치다와 헤엄치지 못하다로 나뉘고 ‘헤엄’이라는 클래스를 만들어 그 안에 [헤엄치다]와 [헤엄치지못하다]라는 메서드를 만든다. 나중에 헤엄에 또다른 기능이 추가되면 바꿀수가 있다. 부모메서드와는 다른 개념으로 이해해야한다.

Java 2020.05.13

상속과 구성

상속(Inheritance) 우리가 생각하는 상속이라는 단어가 맞다. 현실 세계에서 부모님이 자식들에게 재산을 물려주는 것과 비슷하다. 차이라고 하면 자식(클래스)이 상속받고 싶은 부모(클래스)를 선택해서 물려받는다. 이때 상속받는 클래스를 자식 클래스, 하위 클래스 또는 서브 클래스라고 부른다. 상속을 해주는 클래스를 부모 클래스, 상위 클래스 또는 슈퍼 클래스라고 한다. 상속의 대상 자식 클래스가 부모 클래스로부터 상속을 받게 되면 부모 클래스의 필드와 메서드를 물려받게 된다. 단, 접근제어자가 private을 갖는 필드나 메소드는 상속이 불가하고, 패키지가 다를 경우 접근제어자가 default인 경우도 상속이 불가하다.(접근제어자에 대한 내용은 별도 포스팅 예정) 상속의 장점 상속의 장점은 처음에 ..

Java 2020.04.28
728x90
반응형
LIST