All69 자바 메소드 오버라이딩 메소드 오버라이딩은 슈퍼 클래스와 서브 클래스의 메소드 사이에 발생하는 관계로서, 슈퍼 클래스에 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 서브 클래스에 재작성하는 것이다. 서브 클래스의 개발자는 슈퍼 클래스에 있는 메소드로 목적하는 바를 이룰 수 없을 때 동일한 이름의 메소드를 서브 클래스에 다시 작성할 수 있다. 메소드 오버라이딩은 '슈퍼 클래스 메소드 무시하기 혹은 덮어쓰기' 로 표현할 수 있다. 이는 슈퍼클래스의 메소드를 무시하고 서브 클래스에서 오버라이딩된 메소드가 무조건 실행되도록 한다는 것인데, 이런 처리를 동적 바인딩이라고 부르며, 메소드 오버라이딩은 동적 바인딩을 유발시킨다. 오버라이딩의 목적, 다형성 실현 오버라이딩은 수퍼 클래스에 선언된 메소.. 2024. 4. 9. 자바 업캐스팅과 instanceof 연산자 캐스팅이란 타입 변환을 말한다. 자바에서 클래스에 대한 캐스팅은 업캐스팅(upcasting)과 다운캐스팅(downcasting)으로 나뉜다. 자바 상속에서 서브 클래스의 객체는 슈퍼 클래스의 멤버를 모두 가진다. 그러므로 서브 클래스의 객체를 슈퍼 클래스의 객체로 취급할 수 있다. 서브 클래스의 객체에 대한 래퍼런스를 슈퍼 클래스 타입으로 변환하는 것을 업캐스팅이라고 한다. 다음의 예를 보자. Person p; Student s = new Student(); p=s; // 업캐스팅 이 코드에서, 슈퍼 클래스 타입의 래퍼런스 p가 서브 클래스 객체(s)를 가리키도록 치환되는 것이 업캐스팅이다. 업캐스팅을 통해 Person 타입의 p는 Student 객체를 가리킨다. 그러나 레퍼런스 p로는 Person 클래.. 2024. 4. 9. 자바 상속 super( ) 서브 클래스의 생성자에서 super() 을 이용하면, 슈퍼 클래스 생성자를 명시적으로 선택할 수 있다. super()는 슈퍼 클래스 생성자를 호출하는 코드이다. 괄호 안에 인자를 전달하여 슈퍼 클래스의 생성자를 호출할 수도 있다. 아래는 다음의 코드이다. package ConstructorEx4; class A{ public A() { System.out.println("생성자 A"); } public A(int x) { System.out.println("매개변수생성자A"+x); } } class B extends A{ public B() { System.out.println("생성자 B"); } public B(int x) { super(x); //첫 줄에 와야함 System.out.println(".. 2024. 4. 9. 자바 final 상수화 final 이 클래스 이름 앞에 사용되면 그 클래스는 상속 불가능하다. fianl로 메소드를 선언하면 오버라이딩 할 수 없는 메소드이다. final로 필드를 선언하면 필드는 상수가 된다. 2024. 4. 9. 자바 클래스, 객체, 생성자, this 클래스 클래스(캡슐), 필드(멤버 변수),메소드(멤버 함수) 클래스 모양으로 만들어진 객체에서 변수 부분을 멤버 변수, 필드 라고 부르고 / 함수 부분을 멤버 함수, 메소드라고 부른다. 상속 상속은 자식 클래스가 부모 클래스의 기능을 확장 (extends) 하여 사용하는 개념이다 부모 클래스는 슈퍼 클래스 (Super Class) 라고 부르며 자식 클래스를 서브 클래스(Sub Class)라고 부른다. 다형성 다형성은 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현되는 것을 말한다. 오버라이딩(overriding) : 강아지는 멍멍 고양이는 냐옹냐옹 오리는 꽥꽥처럼, 슈퍼 클래스에 구현된 메소드를 서브 클래스에서 동일한 이름으로 자신에 맞게 다시 구현하는 것을 메소드 오버라이딩 이라고.. 2024. 4. 9. 자바 main() 메소드의 특징 public static void main(String[ ] args){ } 자바 응용프로그램의 시작은 main() 메소드부터 시작한다. main() 메소드는 piublc 속성이다. // public은 같은 패키지이든 다른 패키지이든 다른 클래스에서 접근 가능하다. main() 메소드는 static 속성이다. main 메소드는 자신을 포함하는 클래스의 객체가 생성되기 전에, 처음부터 자바 가상 기계에 의해 호출되므로 static 속성으로 선언되어야 한다. // 객체 생성 되기 이전에 공기처럼 선언되는 static main() 메소드의 리턴 타입은 void 이다. 아무 값도 리턴하지 않기 때문에 main() 메소드를 끝내기 위해 리턴하려면 단순히 return;문을 사용하면 된다. main() 메소드에는 문.. 2024. 4. 9. 이전 1 2 3 4 5 ··· 12 다음