본문 바로가기

Dev/Java27

[Java] 자바의 정석 기초편 ch7 7~9 오버라이딩(overriding) ch7-7 오버라이딩(overriding) - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 = 메서드 오버라이딩 override v. 덮어쓰다 class Point { // 2차원 좌표 위치 int x; int y; String getLocation() { return "x : "+ x + ", y: " + y; } } class Point3D extends Point { // 3촤원 좌표 상의 점 int z; String getLocation() { // 조상의 getLocation()을 오버라이딩(내용만 변경가능) // 선언부는 변경불가, {} 구현부만 변경가능 return "x :" + x + ", y:" + y + "z :" + z; } } class Point { // 조상 int x; i.. 2022. 4. 25.
[Java] 자바의 정석 기초편 ch7-5,6 단일 상속, Object 클래스 ch7-5 단일 상속 (Single Inhertiance) - Java는 단일 상속만을 허용한다. (C++은 다중상속 허용) = 하나의 부모만 상속 class TvDvD extends Tv, DVD { //에러, 조상은 하나만 허용한다. //... } - 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다. class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class DVD { boolean power; void power() { power = !power; } void play(){ /*내용생.. 2022. 4. 25.
[Java] 자바의 정석 기초편 ch7-3,4 클래스 간의 관계, 상속과 포함 ch7-3 포함 관계 클래스의 관계 1. 상속 2. 포함 ✔ 포함(composite)이란? - 클래스의 멤버로 참조변수를 선언하는 것 - 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다. class Circle { int x; // 원점의 x좌표 int y; // 원점의 y좌표 int r; // 반지름(radius) } class Point { int x; // 원점의 x좌표 int y; // 원점의 y좌표 } class Circle { // Circle이 Point를 포함 관계 Point c = new Point(); // 객체 생성 int r ; // 반지름 (radius) } class Car { // 포함 관계 Engine e = new Engine(); // 엔진 Door[] d.. 2022. 4. 22.
[Java] 자바의 정석 기초편 ch7-1,2 상속 ch7-1 상속(Inheritance) - 기존의 클래스로 새로운 클래스를 작성하는 것. (코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것. class Parent{} class Child extends Parent { // 자식이 부모에게 상속받는 종속관계 // ... } - 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화 블럭 제외) - 키워드 extends - 자손의 멤버 개수는 조상보다 적을 수 없다. (같거나 많다.) class Parent { // 멤버 1개 int age; } class Child extends Parent {} // 자신의 멤버 0개 & 상속받은 멤버 1개 = 멤버 1개 - 자손의 변경은 조상에 영향을 미치지 않는다. class Parent { .. 2022. 4. 22.