일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html5 new tag
- mac terminal command
- #android activity
- #CallByAddress
- #2차원배열
- html charset
- html video
- docker example
- #다차원포인터
- html plug-in
- #bubbleSort
- #C++ has~a
- html youtube
- #binary
- #성적관리프로그램
- html id
- #C++ 연산자함수오버로딩
- #자바상속#자바이즈어#is~a
- #3차원배열
- hyperledger transaction
- html object
- #1차원배열
- git flow
- border-box
- #JAVASCRIPT
- html multimedia
- 토큰경제
- relative path
- 하이퍼레저패브릭
- html code
- Today
- Total
A sentimental robot
Overridding, 재정의 본문
Overridding
- 부모의 멤버를 은닉
- 부모 + 내꺼
- 동적바인딩...★
public class AA {
private String str;
public AA(){
}
public AA(String a){
str=a;
}
public void setStr(String str){
this.str=str;
}
public String getStr(){
return str;
}
}
Use 1
public class DD extends AA{
public String getStr(){ // Overridding, 부모것을 숨기기위해 똑같이 만듬
return "superman&batman";
}
public static void main(String[]args){
DD dd=new DD();
dd.setStr("pororo"); // 읭? pororo는 출력안됨 -> 부모보다 내것이 먼저(부모것 은닉)
System.out.println(dd.getStr()); // superman&batman 출력
}
}
Use 2
public class DD extends AA{
public String getStr(){
return super.getStr()+"&batman"; // super를 통해 상속 받은 부모멤버접근
}
public static void main(String[]args){
DD dd=new DD();
dd.setStr("pororo");
System.out.println(dd.getStr()); // pororo&batman 출력
}
}
public class EE {
public String toString() {
return "JAVA";
}
public static void main(String[] args) {
EE ee = new EE();
System.out.println(ee.toString()); // JAVA 출력
String str = new String("Superman"); // EE의 부모 클래스 String 클래스가 오버라이딩 되어서,
System.out.println(str.toString()); // Superman 출력
}
}
class Super {
Super() {
}
void f1() {
System.out.println("f1()called");
}
void f3() {
System.out.println("superclass f3() called");
}
void f5() {
f1();
f3(); // 부모클래스에서 f3( )을 불러도 오버라이딩 된 자식 클래스의 메소드가 불려진다.
}
}
public class Sub extends Super {
Sub() {
}
void f2() {
System.out.println("f2()called");
}
void f3() {
System.out.println("subclass f3()");
}
void f4() {
f1();
f2();
f3();
}
public static void main(String[] args) {
Sub d = new Sub();
d.f5();
}
}
'Java' 카테고리의 다른 글
추상클래스를 이용한 스택,큐! (0) | 2017.12.29 |
---|---|
Abstract class,추상클래스에 대해서 (0) | 2017.12.29 |
Inheritance exercise(2) (0) | 2017.12.29 |
Inheritance exercise(1) (0) | 2017.12.29 |
Is~a 상속관계 (0) | 2017.12.29 |