썬글라스가 잘 어울리는 개발고미
DEV on the Beach
썬글라스가 잘 어울리는 개발고미
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 공부 기록노트 (7)
      • React (3)
      • java (15)
      • !오류 (1)
      • html css (1)
      • javascript (11)
      • JSP (4)
      • python (16)
      • network (0)
      • Oracle (6)
      • Git (1)
      • 정보처리기사 (4)
      • plug-in (1)
      • 프로그램 설치 (0)
      • Spring (0)
      • CS (0)
    • 신기술 동향 (0)
    • 맛집 카페 리뷰 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬
  • java
  • Collection Framework
  • 핸드드립
  • 혼공
  • 프로그래머스문제풀이
  • 리액트
  • JSP
  • ArrayList
  • 제이쿼리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
썬글라스가 잘 어울리는 개발고미

DEV on the Beach

메소드 오버라이딩
공부 기록노트/java

메소드 오버라이딩

2022. 8. 12. 21:49

 

오버라이딩?

자식클래스에서 부모클래스로부터 받아온 메서드를 재정의 하는 것

 

사용목적?

자식에 맞는 기능으로 맞춰 동작하기 위해

 

오버로딩 : 메서드 중복정의

-메서드 시그니처

> 함수명

> 매개변수 개수

> 매개변수 타입

 

오버라이딩 : 메서드 재정의

상속관계에 있는 자식클래스가 부모클래스의 메서드를 다시 정의하는 것

package day24;

public class Inheritance2 {
	public static void main(String[] args) {
		Leader leader =  new Leader();
		leader.say();
	}
}

class Student2{
	void learn() {
		System.out.println("배우기");
	}
	void eat() {
		System.out.println("밥먹기");
	}
	void say() {
		System.out.println("선생님 안녕하세요~");
	}
}

class Leader extends Student2{
	void lead() {}
	void say() {
		System.out.println("선생님께 인사!");
	}
}
출력결과
선생님께 인사!

단, 리더클래스의 say()에서 부모(학생)클래스의 say()호출하는 법은

부모 클래스의  필드 사용 방법 : super
자식 클래스 내 필드 사용 방법 : this

상속과 생성자

super() 는 부모클래스의 생성자 호출하는 방법이다.

 - 부모클래스생성자(super())는 무조건 자식 클래스의 생성자 첫 줄에서 이뤄진다.

 - 작성하지 않을 시 컴파일러가 자동 호출된다.

 

컴파일 오류 예제.

더보기

★ 컴파일 오류 발생 이유는 자식클래스에서 생성자 호출 시, 부모클래스의 기본 생성자가 자동으로 호출되기 때문에 

부모의 기본 생성자가 존재해야 한다.

★

오류 해결방법

1. 부모클래스에 기본 생성자 추가 -> Car( ) { } 

2. 호출할 부모 생성자 지정하기 -> super(color); 

 

오류 해결방법1.

-> 부모클래스에 기본 생성자 Car( ) { } 추가 

오류 해결방법2.

Object 클래스

모든 클래스의 조상(상위)클래스를 의미한다. 

우리는 class를 생성할 때 Superclass 로 java.lang.패키지에 있는 Object클래스로 자동으로 지정하는 것을 알 수 있다.

 

Object클래스에서 받아오는 모든 메서드를 사용할 수 있다. ( toString(), equals(), getClass() )

1. toString()  : 객체의 정보를 문자열로 출력할 때 사용한다.

package day24;

public class ObjectTest {

	public static void main(String[] args) {
	Aclass a1 = new Aclass();
	Aclass a2 = new Aclass();
	
	//toString(): 객체정보를 문자열 출력
	System.out.println(a1.toString());
	}
}

class Aclass{
	
}
출력결과
day24.Aclass@7ad041f3

//day24 패키지에있는 A클래스로 만든 객체고, 주소값(@)은 7ad041f3 다.
//toString()을 생략가능
   system.out.println(a1); 을 출력해도 동일한 결과가 나온다.

 

2. equals() : 두 객체가 동일한가를 비교할 때 사용한다.

package day24;

public class ObjectTest {

	public static void main(String[] args) {
	Aclass a1 = new Aclass();
	Aclass a2 = new Aclass();
	

	//equals(): 두 객체가 동일한가를 비교
	System.out.println(a1.equals(a2));
	}
}

class Aclass{
	
}
출력결과
false

//a1 과 a2 는 같은 클래스로 만들었지만 동일한 객체는 아니다.

3. getClass()

package day24;

public class ObjectTest {

	public static void main(String[] args) {
	Aclass a1 = new Aclass();
	Aclass a2 = new Aclass();
	
	//getClass(): 객체의 클래스 정보를 가져옴
	System.out.println(a1.getClass());
	}
}

class Aclass{
	
}
출력결과
class day24.Aclass

//day24의 Aclass에서 만들어진 객체다. 라는 정보까지 출력해주는 메서드이다.

'공부 기록노트 > java' 카테고리의 다른 글

[Java] GUI 프로그래밍을 위한 AWT  (0) 2023.01.01
[조건문] if문과 switch문  (0) 2022.10.02
[메소드] Math.random( )  (0) 2022.10.02
[자바] 상속 (Inheritance), 부모/자식클래스  (0) 2022.08.18
코드 작성 연습방법  (1) 2022.08.09
    '공부 기록노트/java' 카테고리의 다른 글
    • [조건문] if문과 switch문
    • [메소드] Math.random( )
    • [자바] 상속 (Inheritance), 부모/자식클래스
    • 코드 작성 연습방법
    썬글라스가 잘 어울리는 개발고미
    썬글라스가 잘 어울리는 개발고미

    티스토리툴바