JAVA/상속
-
추상 클래스(abstract class)JAVA/상속 2020. 10. 11. 00:23
추상 클래스(abstract class) - 추상 메소드 . 기능이 구현되지 않고 stub, 즉, 원형만 선언되어 있는 메소드이다. . 중괄호 "{, }"가 생략되어 있다. 예) public int add(int i, int j); public abstract int sub(int i, int j); - 추상 클래스는 추상 메소드가 1개 이상 선언되어 있다. - 추상 클래스는 객체를 생성할 수 없다. - 추상클래스가 객체를 생성하려면 추상 메소드를 Overriding(구현) 해야 한다. - 추상 클래스를 구현한 클래스는 추상 클래스를 상속받아 구현함으로써 추상클래스 타입에 포함된다.(형변환) 추상 클래스 정의 프로그램 실행결과 소스 파일 추상 클래스 정의 추상 메소드
-
메소드 내부 객체 변수(this,super), 생성자 호출 메소드JAVA/상속 2020. 10. 11. 00:05
메소드 내부 객체 변수 - this : 메소드 안에서 객체를 나타내는 객체 변수, 메소드 안에서 메소드를 호출한 객체의 주소(Hash Code)를 가지고 있다. 사용법 : this.멤버변수 - super : 메소드 안에서 상위 클래스 객체를 나타내는 객체 변수 사용법 : super.멤버변수 생성자 호출 메소드 - 생성자 안에서 다른형태의 생성자를 호출 할 수 있다. - this() : 현재 클래스의 생성자를 호출. - super() : 부모 클래스의 생성자를 호출. - 생성자 : new를 이용하여 메모리 할당이 끝난 후 메모리를 초기화하는 역할을 한다. 멤버 변수에 초기값을 할당한다. 1. this - 멤버 변수를 호출한 객체의 주소를 가지고 있다. - 멤버 메소드는 메소드를 호출한 객체의 주소를 알아야..
-
상속 관계에서의 생성자JAVA/상속 2020. 10. 10. 23:26
상속 관계에서의 생성자 - 자식 클래스 객체 생성시 기본 생성자를 호출하면 부모클래스도 기본생성자가 호출된다. - 부모클래스에 파라미터가 있는 생성자가 존재하면 부모클래스의 기본생성자는 자동으로 생성되지 않음으로 명시적으로 생성자를 선언해야 한다. - 자식 클래스 객체 생성시 부모클래스의 생성자가 먼저 호출되고 자식 클래스의 생성자가 호출된다 ☞ 부모클래스는 생성자의 쓰임과 관련 없이 디폴트 생성자를 선언할 것을 절대 권장. 예: public Parent(){ } - 부모 클래스의 생성자는 생략 가능하나 권장이 아니다. 1. 기본 생성자가 명시되지 않은 경우 자동으로 기본 생성자가 생성되어 객체가 만들어 진다. 프로그램 실행결과 소스 파일 2 -(1). 상속관계에서는 부모클래스의 생성자가 먼저 실행된다...
-
객체 형변환JAVA/상속 2020. 10. 10. 23:04
객체 형변환 - 상속 관계에서는 부모자식간에 형변환이 가능하다. - 상속관계에서는 좌측에 부모클래스가 오고 우측에 자식 클래스가 올 수 있다. - 실제로 메모리상에 생성되는 객체는 자식 클래스 객체가 생성되고 타입만 부모클래스가 된다 - 자식 클래스에 등록된 메소드는 호출할 수 없다. 따라서 기본적으로 부모클래스에 있는 메소드만 호출 가능하다.(타입에 우선한다.) - 부모 클래스 타입을 자식클래스로 강제 형변환 하면 자식 클래스의 메소드를 호출 할 수 있습니다. - 일반적으로 부모클래스의 메소드를 호출하려면 부모클래스 타입으로, 자식클래스의 메소드를 호출하려면 자식 클래스 타입으로 형변환하여야 한다.(★) . 예외: 오버라이딩 시에는 부모클래스 타입이더라도 자식클래스의 메소드가 호출된다. - 모든 클래스..
-
Method OverridingJAVA/상속 2020. 10. 10. 22:49
Method Overriding개념 - 상속관계의 클래스에서 상위 클래스에 선언된 메소드를 자식 클래스에서 다시 선언하는 경우를 말한다.. 이런 경우 기본적으로 부모클래스의 메소드는 무시된다. - 같은 메소드가 부모와 자식에게 모두 선언되어 있으나 메소드의 내용은 다르다. - 부모와 자식 Class간에 메소드의 원형이 같아야 한다. . 원형(Stub): 메소드명, 인수의 갯수, 인수의 데이터 타입, return 타입 - 부모클래스가 메소드를 상속해주나 자식 클래스는 자신이 구현한 메소드를 우선하여 이용한다. 따라서 상속이 무시된다. - 부모클래스의 메소드 기능을 유지하면서 상황에 따라 자식클래스의 변형된 기능을 사용하고 싶은 경우 사용하며 다형성 구현의 핵심 원리이다. - 메신저는 버젼 별로 기능이 틀리..
-
상속의 개념JAVA/상속 2020. 10. 10. 22:33
상속(Inheritance)의 개념 - 상속의 경우 속성을 상속하는 경우 보다는 메소드를 상속하기위해 많이 사용되며, 부모 클래스의 기능을 확장하는데 부모클래스를 수정하지 않고, 부모에 구현된 로직을 사용하면서 안정적으로 클래스의 기능을 확장 할 수 있는 기법을 제공한다. - 상속을 계속적으로 하게 될 경우 가장 아래의 클래스는 부모로부터 많은 메소드를 상속 받음으로 매우 많은 기능을 사용할 수 있다. - 무분별한 상속은 모바일 프로그램의 경우 심각한 속도 저하를 가져올 수 있다. 또한 유지보수 시에 Application 분석을 어렵게 할 수 있다. - 상속은 한번에 하나의 클래스에서만 가능, C++의 경우는 2개이상의 클래스를 상속하는것이 가능하다. - 형식: class 자식 Class(Sub Clas..