본문 바로가기

백엔드/JAVA27

JAVA 추상 클래스 추상 클래스(Abstract Class)란? 먼저 추상이란 일종의 공통된 부분을 묶어서 부른다는 뜻을 가지고 있는데 JAVA에서 추상이란 공통된 행동, 필드를 묶어 하나의 클래스로 만드는 것이라고 한다. ( ex: 동물을 산책시키다/먹이를 주다/쓰다듬다 에서 동물이 추상클래스로 만들 수 있다.) 이 추상 클래스는 다형성을 보장하기 위해 나타난 개념이라고 하며 하나 이상의 추상 메소드를 포함한 클래스를 추상 클래스라고 한다. 만약 부모 클래스에서 추상 메소드를 선언하면 자식 클래스가 상속을 받아 메소드를 구현해 기능을 사용할 수 있는데 여기서 자식클래스는 부모클래스에서 상속받은 추상 메소드를 반드시 재정의(오버라이딩) 해야 하므로 다형성을 보장받으며 추상 클래스는 함수 선언만 되어있으며 구현내용이 없다. .. 2023. 3. 22.
JAVA 다형성 다형성(Polymorphism)이란? 객체지형언어의 특징중 하나로 Java 에서 하나의 객체나 메소가 여러가지 형태(타입)을 가질수 있는 것을 말한다. 이 다형성을 나타내는 것이 이전시간에 배웠던 오버라이딩 오버로딩 그리고 상속받은 객체의 참조변수 형변환등이 존재한다. 부모클래스의 타입의 참조 변수로 자식클래스의 인스턴스를 참조한다고 한다. class Person {} class Student extends Person {} Person a = new Student(); // Student b = new Person(); 위 코드를 보면 Person이라는 부모클래스와 그걸 상속받는 자식클래스인 Student가 존재하는데 만약 Person a 라는 객체를 만들때 new Student라는 타입도 가질수 있는.. 2023. 3. 21.
JAVA 상속 상속(Inheritance) 상속이라고 하면 내가 알고있는 얕은 지식으로는 부모가 자식에게 물려주는 재산등을 말하는데 JAVA에서의 상속이라는 개념도 이와 비슷하거나 같다고 볼 수 있다. 다만 다른점은 자식이 상속받고 싶은 부모를 선택한다는 점이 다르다 상속이란 기존 클래스에 기능 추가 및 재정의하여 새로운 클래스를 정의한다 - 부모 클래스 : 상속 대상이 되는 기존 클래스 (= 상위클래스, 기초클래스) - 자식 클래스 : 기존 클래스를 상속하는 클래스 (= 하위 클래스, 파생 클래스) 자식클래스가 상속하고자 하는 부모클래스의 필드와 메소드가 상속이 된다.(생성자와 초기화 블록은 상속되지 않는다.) 상속이 이루어질 때에는 다중 상속이 불가능하다.(여러 부모의 클래스를 상속받는 것이 불가능!) 접근제어자 .. 2023. 3. 20.
JAVA 클래스와 객체 #2 오버로딩 한 클래스 내에서 사용하려는 이름과 이미 같은 이름의 메소드가 있더라도 매개변수의 갯수나 타입이 다르면 같은 이름을 사용해서 메소드를 정의할 수 있다. 오버로딩의 조건! - 메소드의 이름이 같아야 한다. - 매개변수의 개수 또는 타입이 달라야 한다. (리턴값만 다른것은 오버로딩이 되지 않는다!) public class 클래스명 { 클래스명() {} 클래스명(String name, String type) { 구현내용; } } 생성자를 오버로딩하면 처음 생성자는 default로 존재하고 아래 생성자는 어떤 데이터를 넣어서 초기화 하고싶을 때 추가로 만들면 오버로딩이 되는 것이다. 접근 제어자 클래스의 변수나 메소드의 접근에 제한을 두는 키워드를 말한다. 접근 제어자 종류 - private : 해당 .. 2023. 3. 19.