수퍼클래스의 인자 있는 생성자
서브 클래스 생성자
name= lee
|
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
32
33
34
35
36
37
38
39
40
|
package day_11;
class Super {
String name;
// public Super() { // 수퍼 클래스의 디폴트 생성자
// System.out.println("수퍼 클래스 생성자");
// }
//↓생성자 오버로딩
public Super(String name) {
this.name = name;
System.out.println("수퍼클래스의 인자 있는 생성자");
}
public void showData() {
System.out.println("name= " + name); // 디스에 네임
}
}
class Sub extends Super {
public Sub() {
// 생성자 호출 전에 다른 문장이 올 수 없다.
// 명시적으로 부모클래스의 생성자를 호출해야한다.
super("lee"); // 문자열 넣어주기 ???? 왜
System.out.println("서브 클래스 생성자");
}
public void showData() {
super.showData(); // 부모클래스의 쇼데이타를 호출.
//System.out.println("name= " + name);
} //수퍼에 네임
}
public class Dat11Ex02 {
public static void main(String[] args) {
Sub sub = new Sub();
sub.showData();
}
}
|
cs |
Line
Shape
Line
Rect
Circle
|
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
package day_11;
class Shape { // 슈퍼 클래스
public Shape next;
public Shape() {next = null;}
public void draw() {
System.out.println("Shape");
}
}
class Line extends Shape {
public void draw() { //메소드 오버라이딩
System.out.println("Line");
}
}
class Rect extends Shape {
public void draw() { // 메소드 오버라이딩
System.out.println("Rect");
}
}
class Circle extends Shape {
public void draw() { // 메소드 오버라이딩
System.out.println("Circle");
}
}
public class Day11Ex03 {
static void paint(Shape p) {
p.draw(); // p가 가리키는 객체 내에 오버라이딩된 draw() 호출
// 동적 바인딩
}
public static void main(String[] args) {
// Shape start, last, obj; // 링크드 리스트로 도형 생성하여 연결
// start = new Line(); // line 객체연결
// last = start;
//
// obj = new Rect();
// last.next = obj; // Rect 객체 연결
// last = obj;
//
// obj = new Line(); // Line 객체 연결
// last.next=obj;
// last = obj;
//
// obj = new Circle(); // circle 객체 연결
// last.next = obj;
// last = obj;
// // 모든 도형 출력
//
// Shape p = start;
// while(p != null) {
// p.draw();
// p = p.next;
// }
//
Line line = new Line();
paint(line);
paint(new Shape());
paint(new Line());
paint(new Rect());
paint(new Circle());
}
}
|
cs |