반응형 자바27 [JAVA] 가상 메서드(virtual method) [추가설명] 상속에서 상위 클래스와 하위 클래스에 같은 이름의 메서드가 존재할 때 호출되는 메서드는 인스턴스에 따라 결정된다. 선언한 클래스형이 아닌 생성된 인스턴스의 메서드를 호출하는 것. 인스턴스의 메서드가 홀출되는 기술을 '가상 메서드(virtual method)'라고 한다. 가상메서드 자바의 클래스는 필드(멤버변수)와 메서드(멤버 함수)로 이루어져 있다. 클래스를 생성하여 인스턴스가 만들어지면 필드(멤버 변수)는 힙 메모리에 위치한다. 변수가 사용하는 메모리와 메서드가 사용하는 메모리는 다르다. 변수는 인스턴스가 생성될 때마다 새로 생성되지만, 메서드는 실행해야 할 명령 집합이기 때문에 인스턴스가 달라도 같은 로직을 수행해야 한다. 같은 객체의 인스턴스를 여러 개 생성한다고 해서 메소드도 여러개 .. 2020. 6. 23. [JAVA]업캐스팅(upcasting) [참고] - 클래스형과 클래스의 자료형, 인스턴스형, 인스턴스의 자료형은 모두 비슷한 의미로 사용하는 용어 상위클래스로 암묵적(묵시적) 클래스 형 변환 개념 면에서 보면 상위 클래스가 하위 클래스보다 일반적인 개념이고, 기능 면에서 보면 하위 클래스가 상위 클래스보다 기능이 많다. 👉상속받은 클래스는 상위 클래스 기능을 모두 사용할 수 있고 추가로 더 많은 기능을 구현하기 때문. 하위클래스는 하위클래스형이면서 동시에 상위클래스 형이기도 하다. 즉, 하위클래스로 인스턴스를 생성 할 때 이 인스턴스의 자료형을 상위클래스형으로 클래스 형변환하여 선언할 수 있다. 👉하위클래스는 상위클래스를 상속 받았기 때문. 즉, 하위클래스에 상위클래스가 포함 된 것. 반대로 상위클래스로 인스턴스를 생성할 때 하위클래스형으로 .. 2020. 6. 22. [JAVA]부모를 부르는 SUPER 예약어 super 예약어는 하위 클래스에서 상위 클래스로 접근 할 때 사용한다. 하위 클래스는 상위 클래스의 주소, 즉 참조값을 알고 있다. 이 참조값을 가지고 있는 예약어가 바로 super 이다. this가 자기 자신의 참조값을 가지고 있는 것과 같다고 생각하면 된다. 또한 super는 상위 클래스의 생성자를 호출하는데 사용된다. 상위 클래스의 필드(멤버 변수)나 메서드(멤버 함수)를 참조하는 super 상위 클래스에 선언한 필드(멤버 변수)나 메서드(멤버함수)를 하위 클래스에서 참조할 때도 super를 사용한다. //상위 클래스의 showCustomerInfo()메서드를 참조하여 담당 상담원의 아이디를 추가로 출력합니다. public String showVIPInfo() { return super.showC.. 2020. 6. 22. [JAVA]상위클래스 변수를 사용하기 위한 protected 예약어 protected - 상위 클래스에서 작성한 필드(멤버변수)나 메서드(멤버함수) 중 외부 클래스에서 사용할 수 없지만, 하위 클래스에서는 사용 할수 있도록 지정하는 예약어 . - 상속받은 하위 클래스에서는 public처럼 사용할 수 있다. - protected는 상속된 하위 클래스를 제외한 나머지 외부 클래스에서는 private과 동일한 역할을 한다. - 동일 패키지 내에서는 가시성이 허용된다. | 접근 제한자 가시성 외부 클래스 하위 클래스 동일 패키지 내부 클래스 public O O O O protected X O O O 선언되지 않음 (default) X X O O private X X X O | 사용 예) 상위클래스 public class Customer { //필드변수 정의 /* Customer.. 2020. 6. 22. [JAVA]상속과 다형성 상속(Inheritance) 객체 지향 프로그래밍의 중요한 특징 중 하나가 상속이다. 상속: 무엇인가를 물려 받는다는 의미 클래스의 상속 클래스를 정의할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능이 확장되는 클래스를 구현하는 것. 상속 하는 클래스 : 상위 클래스, parent class, base class, super class 상속 받는 클래스 : 하위 클래스, child class, derivd class, sub class 클래스 상속 문법 class B extends A{ } [주의] - extends라고 해서 다중 상속이 가능하지는 않고, 단 하나의 class만 사용할 수 있다. 부모클래스의 자식클래스, 그 자식 클래스가 부모 클래스가 되고 또 자식클래스가 생.. 2020. 6. 22. [JAVA]다차원 배열-학사관리시스템 실습(1) 1) 타입[] [] 변수이름; 2) 타입 변수이름[] []; 3) 타입[] 변수이름[]; 2020. 5. 11. 이전 1 2 3 4 5 다음 반응형