목록Engineering (3)
디발자의 Engineering Wiki
기능이 무엇(what) 인지만 정의하고, 어떻게(how) 구현되는지는 정의하지 않는다. → 완전하게 구현되어 있지 않은 method를 가지고 있는 class. → method가 미완성이므로, abstract class로는 instance를 생성할 수 없다 접근제어자 abstract 리턴타입 메서드명( [매개변수…] );구현 방법abstract class 에는 method의 선언부만 작성실체 class 에서 method의 실행 내용 작성(overriding. 재정의 해야 함)추상 클래스의 2종류추상 메소드를 하나라도 가진 클래스추상 메소드가 하나도 없지만 abstract로 선언된 클래스 .
메서드 오버라이딩 : 상속(is-a)받은 자식 클래스에서 부모 클래스에 정의된 메소드를 재정의(메서드의 헤더는 그대로 두고 몸체만 교체하는 것)하는 것 상위 클래스의 메서드와 동일한 시그니처(메서드 이름, 반환형, 매개 변수의 개수와 데이터 타입이 일치해야 함)를 가져야 한다.상속한 메서드의 본문만 변경 가능. 선언부는 변경 불가메서드 오버라이딩 할 때 접근 제한자는 부모의 메서드와 같거나 넓은 범위로만 변경 가능 e.g) public을 defalut나 private로 수정 불가. 반대로 defalut는 public으로 수정 가능.
import GameBoard from "./components/GameBoard"import Log from "./components/Log";import Player from "./components/Player"import GameOver from "./components/GameOver.jsx";import { useState } from "react"import { WINNING_COMBINATIONS } from './winning-combinations.js';const PLAYERS = { X: 'Player 1', O: 'Player 2'};const INITIAL_GAME_BOARD = [ [null, null, null], [null, null, null], [null, nu..