일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- final변수
- InteliJ
- 스프링
- 테이블생성
- JSP
- 일상
- 횡단관심사
- 복습!
- 종단관심사
- 권한부여
- 도전로그
- daily
- MySQL
- 첫줄
- 책추천
- 평가용
- requestparameter
- 소트라테스익스프레스
- 요청파라미터
- 생크림활용기
- 2챕터독서
- onlyfullgroupby
- 데이터베이스생성
- tㅐ
- 자기계발
- 데이로그
- 데일리
- diario
- 내장객체영역
- 노스마트폰챌린지
- Today
- Total
Emma.log()
abstract 클래스와 메서드1 본문
abstract : 추상화
우선 일반적으로 상속관계의 클래스와 메서드를 보겠다
이렇게 클래스 b가클래스 a를 상속받은 경우 오버라이드가 가능하지만 사실 오버라이드의 강제성이 없다
즉 94번라인에서 96번라인의 메서드가 없어도 A클래스의 view1메서드로 호출하면 된다.
abstract클래스는 추상 클래스라고도 불리는데 미완성 된 클래스 라는 의미이다. 그래서 클래스를 선언의 의미로 사용한다.
abstract class 로 보면 abstract 메서드를 사용하면 메서드 바디를 정의할수없다 미완성이라는 의미니까 할수 없겠지..? 그래서 함수를 정의할수없어서 보통 메서드 생성할때 브레이스 입력해서 브레이스 안에 출력문을 작성하는데 void 타입의 경우 그러는데 abstract의 경우 정의할수없어서 ; 세미콜론으로 마무한다.
자식클래스에서는 상속을 받았기에 abstract 클래스에 대해서 abstract메서드를 오버라이드를 하지 않으면 안된다. 에러난다. 그래서 오버라이드의 강제성이 부여된다고 말한다.(52번라인처럼)
또한, abstract클래스를 가지고 객체를 생성하려고 하면 인스턴스 화 할수 없다고 나와서 객체생성이 불가능하다. 그래서 자식클래스 B로 객체를 생성해서 오버라이드된 메서드를 출력해야한다.
그런데 66번라인처럼ㅈ 부모클래스의 참조변수로 자식객체를 생성하는 것은 가능하다.
그런데 abstract클래스라 하더라도 굳이 꼭 abstract 메서드로 생성해야하는것은 아니다. abstract메서드로 만들지 않으면 오버라이드의 강제성은 사라지고, (abstract는 미완성이라는 의미인데 abstract이 없으면 메서드 자체로 슈퍼클래스에서 이미 바디까지 완성된 (정의된)메서드라서굳이 오버라이드 안해도된다) 그런데 클래스 자체가 abstract클래스기떄문에 객체생성은 불가능하다.
'Back-End > Java' 카테고리의 다른 글
abstract클래스 활용해서 출력 (0) | 2022.02.13 |
---|---|
abstract 클래스와 메서드2 (0) | 2022.02.13 |
override 활용2 (0) | 2022.02.13 |
Override 활용1. (0) | 2022.02.13 |
Override 함수의 재정의 (0) | 2022.02.13 |