목록Java (181)
충분히 쌓여가는
참조변수 super 객체 자신을 가리키는 참조변수 인스턴스 메서드(생성자)내에만 존재, static 메서드 내에서 사용불가 조상의 멤버를 자신의 멤버와 구별할 때 사용 참조변수 this와 참조변수 super의 차이 this: iv와 lv를 구별할 때 사용 super: 조상멤버와 자신멤버 구별할 때 사용 public class superTest { public static void main(String[] args) { Child c = new Child(); c.method(); } } class Parent { int x = 10; // super.x } class Child extends Parent { int x = 20; // this.x void method() { System.out.print..
오버로딩과 오버라이딩은 이름만 비슷하고 완전히 다르다(둘이 관계가 없다) 오버로딩: 기존에 없고 이름이 같은 새로운 메서드를 정의하는 것(상속하고 관계가 없다) 오버라이딩: 상속받은 메서드의 내용을 변경하는 것 class Parent { void parentMethod() {} } class Child extends Parent { void parentMethod() {} // 오버라이딩 void parentMethod(int i) {} // 오버로딩 void childMehtod() {} // 새로운 메서드 정의 void childMehtod(int i) {} // 오버로딩 void childMehtod() {} // 중복정의 -> 에러 }
(메서드)오버라이딩(overriding) 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 오버라이딩 되지 않은 것 getLocation() 오버라이딩 되지 않음 class Point { // 2차원 int x; int y; String getLocation() { return "x :" + x + ", y :" + y; } } class Point3D extends Point { // 3차원 int z; } public class overrideTest { public static void main(String[] args) { Point3D p = new Point3D(); p.x = 3; p.y = 5; p.z = 7; System.out.println(p.getLocation()); } } x :..
Object 클래스 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다 모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받는다(toString(), equals(Object obj, hashCode()) 부모가 없는 클래스를 컴파일하면 extends Object 라는 것을 컴파일러가 자동으로 추가해준다 상속 계층도 toString() 메서드를 사용할 수 있는 이유 Object 클래스를 extends해서 가지고 있기 때문 c.toString()에서 toString()을 안붙이고 참조변수 c만 사용해도 된다(println() 메서드의 기능, 참조변수만 있으면 toString()를 호출함) class MyPoint extends Object { int x; int y; } cl..