Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- asp함수
- VARIABLE
- XML
- update
- tempDB
- wap
- 이미지세로길이
- sql랭킹
- xmldom
- VarType
- 정규식
- jdbc driver
- 한글입력체크
- ERD
- sql순위
- join
- 인젝션
- SPLIT
- JavaScript
- array
- MSSQL보안
- instr
- sql업데이트
- WML
- FileSystemObject
- 자바기초
- injection
- 이미지가로길이
- javascript 한글입력체크
- inner join
Archives
- Today
- Total
3초기억력
제어자)abstract 본문
//abstract 제어자 : 추상의, 미완성의 클래스, 메서드...
// 추상메서드 : 아무런 일도 하지 않는 메서드로 {} 블록을 가지지 않는 메서드
// 추상메서드를 만드는 이유 : 상속받은 자식클래스에 무조건 오버라이드 시켜서 꼭 실행해야되는 문장을 만든다.
// 자식클래스에서 사용하고 싶은데로 써라. 다중상속은 안된다.
// 추상메서드를 하나라도 가지고 있는 클래스는 무조건 추상클래스로 변경이 되야한다.
// -불완전하기 때문에 객체를 생성하지 않는다.
// 추상클래스는 다른 클래스들의 객체 생성시 도움을 줄 목적으로 사용한다.
// 인터페이스의 구성은 추상메서드!
// 추상클래스를 구성하는 멤버
// 인스턴스변수 가능, 인스턴스 메서드 가능
// 추상메서드, 클래스변수 선언!
// 추상클래스에 인스턴스메서드(구현부있는 메서드)
// 자식클래스에서 오버라이드 대상에서 제외된다.
//유닛 공격
abstract class Unit{
// void attack() { System.out.println("기본공격"); } //굳이 쓸필요없다.
// void attack2(); //내용없는 메서드를 생성시 빨간줄 생긴다. 클릭하면 abstract 가 붙고 {} 가 필요없다.
//class 명 앞에도 abstract 가 붙어야 된다.
abstract void attack2();
}
class Marine extends Unit{ //빨간줄 1번 클릭시 override 생성
@Override
void attack2() {
System.out.println("총 공격");
}
}
abstract class Tank extends Unit{ //빨간줄 2번 클릭시 abstract 가 붙어야한다.
}
// 어떤 모양
abstract class Shape extends Point{
int x, y, w, h; //
static int num; //몇번째
abstract void draw();
void print() {
System.out.println("현재 : X >"+ x +", Y >"+ y);
}
}
class Line extends Shape{
@Override
void draw() {
System.out.println("선그리기");
}
@Override
void MyPoint() {
this.print();
}
}
//좌표찍기. 상속이 될까?
abstract class Point{
int x, y;
abstract void MyPoint();
}
//추상메서드끼리 다중상속이 되나?
/*
abstract class YY{
abstract void y();
}
abstract class shape2 extends YY, Point{
abstract void draw2();
}
*/
//다중상속이 안된다.
public class AbstractEx {
public static void main(String[] args) {
//유닛 공격
Marine m1 = new Marine();
m1.attack2();
//선그리기
Line l1 = new Line();
l1.x = 100;
l1.y = 200;
l1.draw();
l1.MyPoint();
Shape s1 = new Line();
s1.x = 300;
s1.y = 400;
s1.MyPoint();
Point p1 = new Line();
p1.x = 1000;
p1.y = 2000;
p1.MyPoint();
}
}
'자바_기초' 카테고리의 다른 글
[KISA] 캐슬 Log4j 취약점 관련 CRS Rule 업데이트 (0) | 2022.01.14 |
---|---|
접근제어자) default (0) | 2019.06.07 |
접근제어자) protected (0) | 2019.06.07 |
접근제어자) private (0) | 2019.06.07 |
접근제어자) public (0) | 2019.06.07 |
Comments