public class Main {
public static void main(String[] args) {
int i = ๋ก๋ด.get์ ์(); // ๋ก๋ด ํด๋์ค์ ๋ฉ์๋ get์ ์๋ฅผ int i์ ์ ์ฅ
boolean b = ๋ก๋ด.get๋
ผ๋ฆฌ(); // ๋ก๋ด ํด๋์ค์ ๋ฉ์๋ get๋
ผ๋ฆฌ๋ฅผ boolean b์ ์ ์ฅ
์ฌ๋ a์ฌ๋ = ๋ก๋ด.get์ฌ๋(); // ์ฌ๋ ํด๋์ค์ ๊ฐ์ฒด a์ฌ๋์ 5๊ฐ ๋ง๋ค์ด์
์ฌ๋ a์ฌ๋2 = ๋ก๋ด.get์ฌ๋2(); // ๋ก๋ด์ get์ฌ๋ ๋ฉ์๋์ ๊ฐ๊ฐ ์ฐ๊ฒฐ
์ฌ๋ a์ฌ๋3 = ๋ก๋ด.get์ฌ๋3();
์ฌ๋ a์ฌ๋4 = ๋ก๋ด.get์ฌ๋4();
์ฌ๋ a์ฌ๋5 = ๋ก๋ด.get์ฌ๋5(123, false); //๋ง์ง๋ง ๋ฉ์๋๋ง int์ boolean ๋งค๊ฐ๋ณ์๋ฅผ ์ฃผ์ด ๊ฐ ํธ์ถ
}
}
class ๋ก๋ด{
static int get์ ์(){ // ๋ฐํํ๋๊ฒ ์ ์ํ์ด๋ฏ๋ก static int
return 0;
}
static boolean get๋
ผ๋ฆฌ(){ // ๋ฐํํ๋๊ฒ ๋
ผ๋ฆฌํ์ด๋ฏ๋ก static boolean
return true;
}
static ์ฌ๋ get์ฌ๋() {
์ฌ๋ a์ฌ๋ = new ์ฌ๋();
return a์ฌ๋;
}
static ์ฌ๋ get์ฌ๋2() {
์ฌ๋ a์ฌ๋2 = new ์ฌ๋();
return a์ฌ๋2;
}
static ์ฌ๋ get์ฌ๋3() {
์ฌ๋ a์ฌ๋3 = new ์ฌ๋();
return a์ฌ๋3;
}
static ์ฌ๋ get์ฌ๋4() {
์ฌ๋ a์ฌ๋4 = new ์ฌ๋();
return a์ฌ๋4;
}
static ์ฌ๋ get์ฌ๋5(int a, boolean b) {
์ฌ๋ a์ฌ๋5 = new ์ฌ๋();
return a์ฌ๋5;
}
}
class ์ฌ๋ extends ๋ก๋ด{
}
public class Main {
public static void main(String[] args) {
์ ์ฌ a์ ์ฌ = new ์ ์ฌ();
a์ ์ฌ.์ด๋ฆ = "์นด๋";
a์ ์ฌ.๋์ด = 22;
a์ ์ฌ.a๋ฌด๊ธฐ = new ์นผ();
a์ ์ฌ.๊ณต๊ฒฉ();
// ์ถ๋ ฅ : 22์ด ์ ์ฌ ์นด๋(์ด)๊ฐ ์นผ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.
a์ ์ฌ.์ด๋ฆ = "์ด์ฝ";
a์ ์ฌ.a๋ฌด๊ธฐ = new ํ();
a์ ์ฌ.๊ณต๊ฒฉ();
// ์ถ๋ ฅ : 22์ด ์ ์ฌ ์ด์ฝ(์ด)๊ฐ ํ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.
}
}
class ์ ์ฌ{
int ๋์ด;
String ์ด๋ฆ;
๋ฌด๊ธฐ a๋ฌด๊ธฐ;
void ๊ณต๊ฒฉ(){
a๋ฌด๊ธฐ.์๋(์ด๋ฆ, ๋์ด);
}
}
abstract class ๋ฌด๊ธฐ extends ์ ์ฌ {
void ์๋(String ์ฌ์ฉ์_์ด๋ฆ, int ์ฌ์ฉ์_๋์ด, ๋ฌด๊ธฐ){
}
}
class ์นผ extends ๋ฌด๊ธฐ{
void ์๋(String ์ฌ์ฉ์_์ด๋ฆ, int ์ฌ์ฉ์_๋์ด, ๋ฌด๊ธฐ){
System.out.println(์ฌ์ฉ์_๋์ด +"์ด ์ ์ฌ " + ์ฌ์ฉ์_์ด๋ฆ +"(์ด)๊ฐ ์นผ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.");
}
}
class ํ extends ๋ฌด๊ธฐ{
void ์๋(String ์ฌ์ฉ์_์ด๋ฆ, int ์ฌ์ฉ์_๋์ด, ๋ฌด๊ธฐ) {
System.out.println(์ฌ์ฉ์_๋์ด +"์ด ์ ์ฌ " + ์ฌ์ฉ์_์ด๋ฆ +"(์ด)๊ฐ ํ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.");
}
}
super ํจ์๋ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถํ๋ ํจ์์ด๋ค. ๋ง์ฝ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๊ฐ ์์ผ๋ฉด ์์ ํด๋์ค์์๋ superํจ์๊ฐ ์๋ต ๊ฐ๋ฅํ๋ค. ๋ถ๋ชจ ํด๋์ค ์์๋ ์์ฑ์๊ฐ ์๊ณ , ์์ ํด๋์ค์๋ ์์ฑ์๊ฐ ์๋ค๋ฉด ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๊ฐ ๋จผ์ ์คํ๋๊ณ ๋ ํ์ ์์ ํด๋์ค์ ์์ฑ์๊ฐ ์คํ๋๋ค. ๋ง์ฝ ์์ ํด๋์ค์์ super ํจ์๋ฅผ ์๋ตํ๋๋ผ๋ ์๋ฐ์์๋ ์๋์ผ๋ก ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถํ๋ค.
public class Main {
public static void main(String[] args) {
์ฌ๋ a์ฌ๋1 = new ์ฌ๋();
์ฌ๋ a์ฌ๋2 = new ์ฌ๋("๊ธธ์", 24);
new ๋
ธ๋ฃจ();
}
}
class ์ฌ๋ extends ๋๋ฌผ {
String ์ด๋ฆ;
int ๋์ด;
์ฌ๋() {
super(); // ์ด ์ฝ๋๋ ์๋ตํด๋ ํจ์ ์ ์ผ ์ ๋ถ๋ถ์์ ์๋์ผ๋ก ํธ์ถ๋๋ค.
this.์ด๋ฆ = "ํ๊ธธ๋";
this.๋์ด = 22;
}
์ฌ๋(String ์ด๋ฆ, int ๋์ด) {
// super(); // ์ด ์ฝ๋๋ ์๋ตํด๋ ํจ์ ์ ์ผ ์ ๋ถ๋ถ์์ ์๋์ผ๋ก ํธ์ถ๋๋ค.
this.์ด๋ฆ = ์ด๋ฆ;
this.๋์ด = ๋์ด;
}
}
class ๋๋ฌผ {
๋๋ฌผ() {
System.out.println("๋๋ฌผ ์์ฑ์ ํธ์ถ");
}
}
class ๋
ธ๋ฃจ extends ๋๋ฌผ {
String ์ด๋ฆ;
int ๋์ด;
// ์์ฑ์๋ฅผ ์ง์ ์ ์ํ์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ ์์ฑ์๊ฐ ์๋์ผ๋ก ์ถ๊ฐ๋๋ค.
/*
๋
ธ๋ฃจ() {
super();
}
*/
}
public class Main {
public static void main(String[] args) {
์ ์ฌ a์ ์ฌ = new ์ ์ฌ();
a์ ์ฌ.์ด๋ฆ = "์นด๋";
a์ ์ฌ.๋์ด = 122;
a์ ์ฌ.a๋ฌด๊ธฐ = new ์นผ();
a์ ์ฌ.๊ณต๊ฒฉ();
// ์ถ๋ ฅ : 122์ด ์ ์ฌ ์นด๋(์ด)๊ฐ ์นผ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.
a์ ์ฌ.์ด๋ฆ = "์ด์ฝ";
a์ ์ฌ.๋์ด = 123;
a์ ์ฌ.a๋ฌด๊ธฐ = new ํ();
a์ ์ฌ.๊ณต๊ฒฉ();
// ์ถ๋ ฅ : 123์ด ์ ์ฌ ์ด์ฝ(์ด)๊ฐ ํ(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.
}
}
class ์ ์ฌ {
String ์ด๋ฆ;
int ๋์ด;
๋ฌด๊ธฐ a๋ฌด๊ธฐ;
void ๊ณต๊ฒฉ () {
a๋ฌด๊ธฐ.์๋(์ด๋ฆ, ๋์ด);
}
}
abstract class ๋ฌด๊ธฐ extends ์ ์ฌ {
String ๋ฌด๊ธฐ์ด๋ฆ;
void ์๋(String ์ด๋ฆ, int ๋์ด) {
System.out.println(๋์ด + "์ด ์ ์ฌ " + ์ด๋ฆ + "(์ด)๊ฐ " + ๋ฌด๊ธฐ์ด๋ฆ + "(์ผ)๋ก ๊ณต๊ฒฉํฉ๋๋ค.");
}
}
class ์นผ extends ๋ฌด๊ธฐ {
์นผ() {
๋ฌด๊ธฐ์ด๋ฆ = "์นผ";
}
}
class ํ extends ๋ฌด๊ธฐ {
ํ() {
๋ฌด๊ธฐ์ด๋ฆ = "ํ";
}
}