🔷 어떤 클래스의 특성을 그대로 갖는 새로운 클래스를 정의한 것
상위 클래스
(부모 클래스, super class)에서 하위 클래스
(자식 클래스, sub class)에게 공통된 변수나 메서드를 물려주는 것🔷 extends
키워드를 통해 사용
public class Person {
String name;
int age;
public void eat() {
System.out.println("밥 먹어");
}
}
public class Student extends Person{
// String name;
// int age;
int degree;
public void walk() {
System.out.println("좀 걸어");
}
}
🔷 상속의 특징
확장성
, 재 사용성
extends
키워드를 명시❗ 다중 상속이 허용된다면 super 클래스 끼리 멤버 변수나 메서드 명이 겹칠 때 sub 클래스에서의 판단이 모호해진다.
관계
자식 클래스는 부모 클래스의 멤버변수, 메소드를 자신의 것처럼 사용할 수 있다.
단, 접근 제한자에 따라 사용 여부가 달라진다.
Object 클래스는 모든 클래스의 조상 클래스
super
키워드public class Person {
String name;
int age;
public Person(String name, int age) {
super(); // object 클래스의 생성자
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("밥 먹어");
}
}
public class Student extends Person{
int degree;
public Student(String name, int age, int degree) {
super(name, age);
this.degree = degree;
}
public void walk() {
super.eat();
System.out.println("좀 걸어");
}
}
❗ super 키워드로 생성자를 불러올 때 그 위치는 생성자의 가장 위에 있어야 한다.
❗ super()와 this()는 같이 쓰일 수 없다!
⭐ 상속을 위해 기본 생성자 제작을 습관화하자.
오버라이딩
(재정의, overriding)슈퍼 클래스
에서 쓰인 메서드를 서브 클래스
에서 재정의하여 사용하는 것메서드 오버로딩
과 혼동하지 말 것!public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("밥 먹어");
}
}
public class Student extends Person{
int degree;
public Student(String name, int age, int degree) {
super(name, age);
this.degree = degree;
}
public void walk() {
super.eat();
System.out.println("좀 걸어");
}
public void eat() {
System.out.println("밥 말고 라면 먹어");
}
}
🔷 가장 최상위 클래스이자 모든 클래스의 조상 클래스
Object
의 멤버는 모든 클래스의 멤버toString()
public String toString() {
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
주소 값이 아닌 내용이 궁금한 경우, 오버라이딩
equals()
두 객체가 같은지를 비교하는 메서드
비교 연산자 ==
로 두 객체의 주소 값 비교
public boolean equals(Object obj) {
return(this==obj);
}
❗ String 클래스에서 이미 오버라이딩 되어 있기 때문에 여기서는 주소 값을 비교하지 않는다.
hashCode
final 클래스
: 상속 금지final 메소드
: 오버라이딩 금지final 변수
: 더 이상 값을 바꿀 수 없음 (상수화)코로나로 아팠던 나,
그래도 이틀 강의 잘 들었다.
아주 유익한 내용이네요!