상속받은 자식 클래스와 부모 클래스가 있을 때, 자식 클래스의 생성자 함수가 실행되면 부모의 생성자 함수도 실행된다.
public class Main {
public static void main(String[] args) {
자식 자식 = new 자식();
// 출력: "부모입니다."
// "자식입니다."
}
}
class 부모 {
부모() {
System.out.println("부모입니다.");
}
}
class 자식 extends 부모 {
자식() {
System.out.println("자식입니다.");
}
}
public class Main {
public static void main(String[] args) {
자식 자식 = new 자식();
// 출력: "부모입니다."
// "자식입니다."
}
}
class 부모 {
String 이름;
부모() {
이름 = "부모님";
}
}
class 자식 extends 부모 {
자식() {
System.out.println(
}
}
public class Main {
public static void main(String[] args) {
Cat c = new Cat();
Dog d = new Dog();
c.cry(); // 출력: "냐옹"
c.play(); // 출력: "낚시 장난감을 가지고 놉니다."
d.cry(); // 출력: "멍멍"
d.play(); // 출력: "공을 가지고 놉니다."
}
}
interface Animal {
void cry();
}
interface Pet {
void play();
}
class Cat implements Animal, Pet {
public void cry() {
System.out.println("냐옹");
}
public void play() {
System.out.println("낚시 장난감을 가지고 놉니다.");
}
}
class Dog implements Animal, Pet {
public void cry() {
System.out.println("멍멍");
}
public void play() {
System.out.println("공을 가지고 놉니다.");
}
}
'puclic', 'protected', 'private' 총 세가지가 있다.
public class MyClass {
public int publicField; // 다른 클래스에서 접근 가능
public void publicMethod() {
// 다른 클래스에서 호출 가능
}
}
public class MyClass {
protected int protectedField; // 같은 패키지와 자식 클래스에서 접근 가능
protected void protectedMethod() {
// 같은 패키지와 자식 클래스에서 호출 가능
}
}
public class Main {
public static void main(String[] args) {
사람 a사람 = new 사람();
//쉽고 무분별한 접근을 막을 수 있고 들어오는 데이터를 검증할 수 있다.
//a사람.나이 = 20 //오류
a사람.set나이(20);
System.out.println("나이는 "+a사람.get나이());
}
}
class 사람 {
private int 나이;
void set나이(int 나이) {
this.나이 = 나이;
}
int get나이() {
return this.나이;
}
}