[til 012_001] 상속

김동현·2023년 7월 27일
0

til

목록 보기
22/53
post-thumbnail

상속 ( Inheritance ) 에 대해서 배워보자.

상속의 특징 : 코드 추가 및 수정에 용이함
-> 부모에게 정의하면 상속받은 자식들은 모두 부모의 것을 그대로 받아서 쓸 수 있음!

Person class(부모객체 클래스)

public class Person {

// 필드

private String name;
private int age;
private String nationality; 

// 생성자
// 기본생성자;
public Person() {}

// 매개변수 생성자

public Person(String name, int age, String nationality) {
	this.name = name;
	this.age = age;
	this.nationality = nationality;
}

// 메서드
// getter/setter

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public int getAge() {
	return age;
}

public void setAge(int age) {
	this.age = age;
}

public String getNationality() {
	return nationality;
}

public void setNationality(String nationality) {
	this.nationality = nationality;
}


public void breath() {
	System.out.println("사람은 코나 입으로 숨을 쉰다");
	
}

}

Student class(자식객체 클래스)

public class Student extends Person {
// Student 클래스에 Person 클래스내용을 연장한다.

private int grade;
private int classRoom;

public Student() {}

public Student(String name, int age, String nationality, int grade, int classRoom) {
	this.grade = grade;
	this.classRoom = classRoom;
	
}


public int getGrade() {
	return grade;
}

public void setGrade(int grade) {
	this.grade = grade;
}

public int getClassRoom() {
	return classRoom;
}

public void setClassRoom(int classRoom) {
	this.classRoom = classRoom;
}
}

오버라이딩(overriding)

부모클래스에서

public void move() {
	System.out.println("사람은 움직일 수 있다.");
    }
    

자식클래스에서

@Override
public void move() {
	System.out.println("오버라이딩된 move()");
	System.out.println("효율적으로 빨리 일하고 움직인다");
	
}

이렇게 자식클래스에 맞게 오버라이딩 해줄 수 있다.

@Override 어노테이션 : 해당 메소드가 오버라이딩 되었음을 컴파일러에게 알려주는 역할
-> 컴파일러에게 문법 체크를 하도록 알린다

toString()을 오버라이딩시키는 경우가 많다.

@Override
public String toString() {
	return name + " / " + age + " / " + nationality;
}

Object 에있는 toString()을 오버라이딩시켜 나열하는 방식에 변화를 줄 수 있다.

0개의 댓글

관련 채용 정보