포인터란 어떤 변수의 주소값을 저장하는 변수이다. 포인터의 선언은 변수명 앞에 * 을 붙이면 가능하고, 어떤 변수의 주소값을 얻기 위해서는 &을 붙이면 된다.
#include <stdio.h>
int main() {
int* p = NULL;
int num = 10;
p = #
printf("포인터 p의 값: %d \\n", p);
printf("num의 주소: %d \\n", &num);
return 0;
}
장점
단점
다중 상속을 지원하면 다이아몬드 문제가 발생할 수 있기 때문이다. 예를 들어 Human 클래스에 있는 Walk() 메소드를 Female 클래스와 Male 클래스가 모두 구현하였다고 할 때, Female과 Male 클래스를 다중 상속 받은 Person 클래스의 입장에서는 코드의 충돌이 생기기 때문.

public class Person {
public void print() {
System.out.println("나는 사람입니다");
}
}
public class Student extends Person {
// Overriding
public void print() {
System.out.println("나는 학생입니다.");
}
// Overloading
public void print(String name) {
System.out.println(name + "는 학생입니다");
}
}