추상이란 ? 추상의 사전적 의미를 보면 "여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용." 입니다. "상속"이 자손 클래스를 만드는데 조상 클래스를 사용하는 것이라면, "추상화"는 기존의 클래스의 공통적인 부분을 뽑아 조상 클래스를 만드는 것이라 할 수 있습니다. 추상화 : 클래스간의 공통점을 찾아 공통의 조상을 만드는 작업. 구체화 : 상속을 통해 클래스를 구현, 확장하는 작업. 상속계층도를 따라 내려갈수록 클래스는 점점 기능이 추가되어 구체화의 정도가 커져 세분화되고, 반대로 올라갈수록 추상화의 정도가 커져 공통요소만 남게됩니다. 추상 클래스 ( abstract class ) 클래스를 설계도라 비유한다면, 추상클래스는 미완성 설계도라고 할 수 있습니다. 클래스가 미..
super super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수입니다. 멤버변수와 지역변수의 이름이 같을 때 this를 붙여 구별했듯이 상속받은 멤버와 자신의 멤버와 이름이 같을 때는 super를 붙여 구분할 수 있습니다. super와 this 비교 class SuperTest { public static void main(String args[]) { Child c = new Child(); c.method(); } } class Parent { int x=10; } class Child extends Parent { int x = 20; void method() { System.out.println("x=" + x); System.out.println("this...
오버라이딩 ( overriding ) 오버라이딩이란, 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 말합니다. 상속받은 메서드를 그대로 사용해도 되지만, 자손 클래스에 맞게 변경해야할 경우 오버라이딩을 사용합니다. 오버라이딩의 조건 오버라이딩이 성립되기 위해서는 다음과 같은 조건들을 만족해야 합니다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1. 이름이 같아야 한다. 2. 매개변수가 같아야 한다. 3. 반환타입이 같아야 한다. 요약하면 선언부가 서로 일치해야 한다는 것과 같습니다. 오버라이딩 예시 class Point { int x; int y; String getLocation() { return "x :" + x + ", y :" + y; } } class Point3..
상속 상속이란, 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것입니다. 상속을 통해서 클래스를 작성하면, 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 도 있어 코드의 추가 및 변경이 용이합니다. 상속 방법 상속 방법은 아주 간단하게 상속받고자 하는 클래스의 이름 앞에 "extends"를 붙여주면 됩니다. 만약 새로 작성하고자 하는 클래스의 이름이 "Child"이고 상속받고자 하는 기존 클래스의 이름이 "Parent"라면 다음과 같습니다. class Child extends Parent { ... } 이 두 클래스는 서로 상속관계에 있다고 하며, 상속해주는 클래스를 "조상 클래스", 상속 받는 클래스를 "자손 클래스"라고 합니다. 이 상속관계를 그림으로 표현하면 다음..
아래의 포스팅을 통해 멤버변수가 무엇인지, 지역변수가 무엇인지에 대해 알아보았습니다. (Java/자바) 클래스 변수, 인스턴스 변수, 지역 변수란? 이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여 hstory0208.tistory.com 다시 한번 간단하게 복습하자면 다음과 같습니다. 멤버변수(클래스변수, 인스턴스변수)와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 이번 시간에는 멤버변수의 초기화의 방법들에 대해 알아보고자 합니다. 멤버변수의 초기화 방법으로는 총 3가지가 있습니다. 명시적 초기화 생성자 초기화 블럭 - 인스턴스 초기화 블럭,..
생성자 ( Constructor ) 생성자는 new 연산자를 통해 인스턴스가 생성될 때 호출되고 제일 먼저 실행되는 "인스턴스 초기화 메서드" 입니다. 어떻게 보면 메서드와 비슷해보이지만 생성자는 단순히 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드입니다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값 (return)이 없다는 점이 다릅니다. 그렇다고 해서 리턴값이 없음을 뜻하는 void를 사용하지는 않습니다. 생성자의 조건 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 생성자 선언 방법 생성자는 다음과 같이 정의합니다. 생성자도 오버로딩이 가능하므로 하나의 클래스의 여러 개의 생성자가 존재할 수 있습니다. 클래스이름 (타입..