public class Main {
	public static void main(String[] args) {
		ParentsClass pc = new ChildClass();
		pc.a();
	}
}

class ParentsClass {
	public void a() {
		System.out.println("Parensts a() call");
		b();
		System.out.println("Parents a()");
	}
	public void b() {
		System.out.println("Parensts b() call");
		a();
		System.out.println("Parents b()");
	}
}

class ChildClass extends ParentsClass{
	public void a() {
		System.out.println("Child a() call");
		super.a();
		System.out.println("Child a()");
	}
	public void b() {
		System.out.println("Child b() call");
		System.out.println("Child b()");
	}
}

main함수에서 Parents 타입의 변수에 Child 클래스(Parents 상속)의 메소드 호출 시 호출 결과

Child클래스에서 super로 Parents 클래스의 a 메소드를 호출 했을 때 Parents 클래스의 a 메소드에서 b 메소드 호출.
머릿속으로는 Parents 클래스의 b 메소드가 호출될 줄 알았지만 Child 클래스의 b메소드가 호출되었다.

메소드 오버라이딩 하면 부모 클래스에서 호출하는 메소드가 자식 클래스에도 있으면 자식 클래스의 메소드가 우선 호출되는 것으로 보임.

 ❗️Child 클래스에서 b메소드를 주석처리 후 Parents 클래스의 b 메소드 안에 a()만 주석 처리 후 실행했더니

위와 같은 결과가 도출되었다.
메소드 오버라이딩이 없으면 부모 클래스에서 자식 클래스에 없는 메소드를 호출하면 부모 클래스의 메소드가 실행되었음

1년 동안 Java를 안 건드리다가 오랜만에 Java를 다시 보니 기억이 가물가물 ㅠㅠ

생성자 관련해서 예전에 썼던 글도 참고하면 좋을 듯

https://blair6383.tistory.com/249

 

클래스 상속과 클래스 타입 참조변수 확인

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 public class GrandParents { String pStr = "grand parents"; GrandParent

blair6383.tistory.com

 

'언어 > JAVA' 카테고리의 다른 글

class 초기화 블럭(initialization block)  (0) 2023.09.10
인스턴스 변수와 this  (0) 2023.09.10
Math.random과 Random 클래스 차이  (0) 2022.11.18
Scanner객체 NoSuchElementException 오류  (0) 2021.06.20
Java 버전별 달라진 점.  (0) 2020.07.22
Posted by 知彼知己百戰不殆
,

맥북을 새로 바꾸게 되면서 git프로젝트를 가져왔으나 lombok이 설치되어 있지 않아 오류가 잔뜩 터졌다...
그래서 얼른 https://projectlombok.org/download lombok 링크로 들어가 lombok.jar파일을 다운 받았다.
그리고 터미널을 열고 lombok.jar 위치에서 java -jar lombok.jar를 실행하고 IDE를 못 찾는다는 오류가 나왔다.

그래서 직접 수동으로 SpringToolSuite4.ini 파일을 찾아서 선택해줌.

선택 후 Install / Update를 눌렀으나... 오류... 권한이 없단다...
구글링 하니 sudo쓰래.. 그래...다시 sudo java -jar lombok.jar 실행... 반복... 오류.... 며칠을 삽질했다. 
진짜 구글링 하면서 나오는 모든 오류 해결법은 다 해본듯... 
그렇게 포기를 다짐할 찰나... 기분좋게 음주를 하고 온 날 불현듯 스치는 뇌리

설마! 파일자체의 권한이 없어서 그런가??

흠...소유자 권한은 7인데 나머지 권한은 5였다. 즉, rwxr-xr-x였다.
젠쟝ㅠㅠ 이것부터 확인했었으면 그 동안 개뻘짓 안 했을텐데 시간이 정말 아까웠다 ㅠㅠ
오랜만에 토이 프로젝을 다시 시작하려고 하니 별의 별일이 많이 생긴다 ㅠㅠ

chmod 775 SpringToolSuite4.app 후 터미널에서 다시 lombok.jar 실행 => 결론은 성공

'OS > Mac OS' 카테고리의 다른 글

SpringToolSuite4 can't be opened 오류  (0) 2023.03.27
Mac 부하테스트(stress test)  (0) 2020.12.27
Eclipse for mac OS Catalina  (0) 2019.12.02
MACOS Sieera able to Unidentified Apps  (0) 2018.01.22
Oralcle DB 설치  (0) 2017.09.05
Posted by 知彼知己百戰不殆
,

개발하기 위해 Mac을 샀으니 개발 tool을 설치했다. 

평소 window컴에서 자주 사용하던 sts4를 설치했다. 설치한 날은 문제없이 실행돼서 git repository도 다운받았다. 

하지만 다음 날 코드 수정하기 위해 들어갔으나 can't be opened 오류가 발생하면서 sts가 열리지 않았다.

https://stackoverflow.com/questions/71183897/the-application-sts-cant-be-opened

 

The application "STS" can't be opened

The first installation of STS on my Mac works fine, and this error pops up after restarting the computer. The problem with stS4-4.13.1 installed is still the same. Attempting to specify the jdk ver...

stackoverflow.com

해답은 여기서 찾을 수 있었다. 

Eclipse 기반인 STS가 열리면서 패키지 내용을 수정하는 것 같은데 그 때 처음 sts를 설치할 때의 서명이 깨지게 되어 위변조 파일이라 생각하여 열리지 않는 것. 따라서 다시 서명을 한 번 해줘야 함.

sudo codesign --force --sign - /Applications/SpringToolSuite4.app

현재 STS4 앱에 다시 자체 서명을 함으로써 해당 버전이 최종 버전으로 인식하게 하는 것

'OS > Mac OS' 카테고리의 다른 글

[오류] Spring Tool Suite4 Lombok 설치  (0) 2023.04.29
Mac 부하테스트(stress test)  (0) 2020.12.27
Eclipse for mac OS Catalina  (0) 2019.12.02
MACOS Sieera able to Unidentified Apps  (0) 2018.01.22
Oralcle DB 설치  (0) 2017.09.05
Posted by 知彼知己百戰不殆
,