diff --git a/core-java-lang-oop-2/.gitignore b/core-java-lang-oop-2/.gitignore
new file mode 100644
index 0000000000..3de4cc647e
--- /dev/null
+++ b/core-java-lang-oop-2/.gitignore
@@ -0,0 +1,26 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+*.txt
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-lang-oop-2/README.md b/core-java-lang-oop-2/README.md
new file mode 100644
index 0000000000..e309810ba2
--- /dev/null
+++ b/core-java-lang-oop-2/README.md
@@ -0,0 +1,5 @@
+=========
+
+## Core Java Lang OOP 2 Cookbooks and Examples
+
+### Relevant Articles:
diff --git a/core-java-lang-oop-2/pom.xml b/core-java-lang-oop-2/pom.xml
new file mode 100644
index 0000000000..3faf9fe6ee
--- /dev/null
+++ b/core-java-lang-oop-2/pom.xml
@@ -0,0 +1,27 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-lang-oop-2
+ 0.1.0-SNAPSHOT
+ core-java-lang-oop-2
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+ core-java-lang-oop-2
+
+
+ src/main/resources
+ true
+
+
+
+
+
diff --git a/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClass.java b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClass.java
new file mode 100644
index 0000000000..ccf8646f57
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClass.java
@@ -0,0 +1,16 @@
+package com.baeldung.supertypecompilerexception;
+
+public class MyClass {
+
+ private int myField1 = 10;
+ private int myField2;
+
+ public MyClass() {
+ //uncomment this to see the supertype compiler error:
+ //this(myField1);
+ }
+
+ public MyClass(int i) {
+ myField2 = i;
+ }
+}
\ No newline at end of file
diff --git a/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionI.java b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionI.java
new file mode 100644
index 0000000000..36000e4bf4
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionI.java
@@ -0,0 +1,15 @@
+package com.baeldung.supertypecompilerexception;
+
+public class MyClassSolutionI {
+
+ private int myField1 = 10;
+ private int myField2;
+
+ public MyClassSolutionI() {
+ myField2 = myField1;
+ }
+
+ public MyClassSolutionI(int i) {
+ myField2 = i;
+ }
+}
diff --git a/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionII.java b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionII.java
new file mode 100644
index 0000000000..f9bc9b26ae
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionII.java
@@ -0,0 +1,19 @@
+package com.baeldung.supertypecompilerexception;
+
+public class MyClassSolutionII {
+
+ private int myField1 = 10;
+ private int myField2;
+
+ public MyClassSolutionII() {
+ setupMyFields(myField1);
+ }
+
+ public MyClassSolutionII(int i) {
+ setupMyFields(i);
+ }
+
+ private void setupMyFields(int i) {
+ myField2 = i;
+ }
+}
diff --git a/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionIII.java b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionIII.java
new file mode 100644
index 0000000000..f449aa904d
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyClassSolutionIII.java
@@ -0,0 +1,15 @@
+package com.baeldung.supertypecompilerexception;
+
+public class MyClassSolutionIII {
+
+ private static final int SOME_CONSTANT = 10;
+ private int myField2;
+
+ public MyClassSolutionIII() {
+ this(SOME_CONSTANT);
+ }
+
+ public MyClassSolutionIII(int i) {
+ myField2 = i;
+ }
+}
diff --git a/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyException.java b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyException.java
new file mode 100644
index 0000000000..db60deb83f
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/java/com/baeldung/supertypecompilerexception/MyException.java
@@ -0,0 +1,14 @@
+package com.baeldung.supertypecompilerexception;
+
+public class MyException extends RuntimeException {
+ private int errorCode = 0;
+
+ public MyException(String message) {
+ //uncomment this to see the supertype compiler error:
+ //super(message + getErrorCode());
+ }
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+}
diff --git a/core-java-lang-oop-2/src/main/resources/logback.xml b/core-java-lang-oop-2/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-lang-oop-2/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java-lang-oop-2/src/test/resources/.gitignore b/core-java-lang-oop-2/src/test/resources/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/core-java-lang-oop-2/src/test/resources/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file