전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

JAVA

[자바/JAVA] 프로그래밍 - 오버라이드 (Override)

2023. 6. 12. 19:09

오버라이딩

- 자식 클래스가 상속받고 있는 부모클래스의 메소드를 재정의(재작성) 하는 것
- 부모가 제공하는 메소드를 자식이 일부 고쳐서 사용하겠다는 의미
- 자식객체를 통해 실행시 자식메소드가 우선권을 가짐

 

오버라이딩 성립 조건

- 부모메소드명 동일
- 매개변수 개수, 자료형, 순서 동일(매개변수명 상관 없음)
- 부모메소드의 반환형 동일
- 부모메소드의 접근제한자보다 범위가 같거나 커야한다.
 ex) 부모메소드의 접근제한자 protected일 경우 오버라이딩 하는 메소드의 접근제한자는 protected, public
 => 규약의 개념이 들어가있음 (너가 재정의 할꺼면 이정도의 규칙은 지켜줘라...)

@Override 어노테이션
- 생략가능함, 크게 상관 없음(명시 하지 않아도 오버라이딩 된 상태)
- 어노테이션 붙이는 이유
>>> 부모메소드 명이나 매개변수가 수정될 경우 => 찾아보기 쉽다.
자식메소드 기술시 오타가 있을 경우 => 찾아보기 쉽다.


Book Class

package com.kh.chap03_override.model.vo;

public class Book /*extends Object*/ {

	private String title;
	private String author;
	private int price;
	
	public Book() {
		
	}
	
	public Book(String title, String author, int price) {
		this.title = title;
		this.author = author;
		this.price = price;
		
	}
	
	public String getTitle() {
		return title;
	}
	
	public void setTitle(String title) {
		this.title = title;
	}
	
	public String getAuthor() {
		return author;
	}
	
	public void setAuthor(String author) {
		this.author = author;
	}
	
	
	public int getPrice() {
		return price;
	}
	
	public void setPrice(int price) {
		this.price = price;
	}
	
	@Override
	public String toString() {
		return "title : " + title + ", author : " + author + ", price : " + price; 
	}

}

 

실행 Class

package com.kh.chap03_override.run;

import com.kh.chap03_override.model.vo.Book;

public class OverrideRun {
	public static void main(String[] args) {
		
		Book bk1 = new Book("수학의 정석", "나수학", 100);
		Book bk2 = new Book("칭찬은 고래도 춤추게 한다", "고래", 300);
		
		System.out.println(bk1);
		System.out.println(bk2);
		
		// 출력문에 래퍼런스를 출력하고자 할 때 JVM이 자동으로 해당 레퍼런스.toString() 메소드 호출
		
		// 오버라이딩전 : Object 쿨래스의 toString() 실행 => 풀클래스명 + @ + 객체의 해쉬코드의 16진수값 리턴
		// 오버라이딩후 : Book 클래스의 toString() 실행 => 해당 객체가 가지고 있는 모든 필드값을 한 문자열로 합쳐 리턴
		
	}

}

 

컴파일

    'JAVA' 카테고리의 다른 글
    • [자바/JAVA] 프로그래밍 - 상속 (inheritance) 실습 문제_2
    • [자바/JAVA] 프로그래밍 - 상속 (inheritance) 실습 문제_1
    • [자바/JAVA] 프로그래밍 - 상속성 (Inheritance)
    • [자바/JAVA] 프로그래밍 - 객체 배열(Object Array) 오류
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바