βοΈ Info.
- Java Interface νμ΅
π List.
1. μΈν°νμ΄μ€ μ μνλ λ°©λ²
2. μΈν°νμ΄μ€ ꡬννλ λ°©λ²
3. μΈν°νμ΄μ€ λ νΌλ°μ€λ₯Ό ν΅ν΄ ꡬν체λ₯Ό μ¬μ©νλ λ°©λ²
4. μΈν°νμ΄μ€ μμ
5. μΈν°νμ΄μ€μ κΈ°λ³Έ λ©μλ (Default Method), μλ° 8
6. μΈν°νμ΄μ€μ static λ©μλ, μλ° 8
7. μΈν°νμ΄μ€μ private λ©μλ, μλ° 9
βοΈ Content.
1. μΈν°νμ΄μ€ μ μνλ λ°©λ²
*μμ λ°°μ΄ μΆμ ν΄λμ€λ μΆμ λ©μλλΏλ§ μλλΌ μΌλ° ν΄λμ€μ κ°μ΄ μμ±μ, νλ, μΌλ° λ©μλλ₯Ό μμ±ν μ μμλ€.
νμ§λ§ μΈν°νμ΄μ€λ μ€λ‘μ§ μΆμ 'λ©μλ'μ 'μμ'λ§μ ν¬ν¨ν μ μλ€. ( Java 8 κΈ°μ€)
- μμ½μ΄λ‘ classκ° μλ interface ν€μλλ₯Ό μ¬μ©
- μ κ·Ό μ μ΄μ
- public
- default
- μΈν°νμ΄μ€ λ΄μ λͺ¨λ λ³μλ "public static final"λ‘ μ μΈλλ©°, μλ΅ κ°λ₯νλ€
- μΈν°νμ΄μ€ λ΄μ λͺ¨λ λ©μλλ "public abstract"λ‘ μ μΈλλ©°, μλ΅ κ°λ₯νλ€
public interface study {
public static final String interfaceVal = "test";
public abstract String interfaceMethod();
}
or
interface study {
String interfaceVal = "test";
String interfaceMethod();
}
2. μΈν°νμ΄μ€ ꡬννλ λ°©λ²
*ꡬν λ°©λ² λ κ°μ§λ‘ ꡬν ν΄λμ€λ₯Ό ν΅ν λ°©λ²κ³Ό μ΅λͺ ꡬν κ°μ²΄λ₯Ό ν΅ν ꡬνμ΄ μλ€.
ꡬν ν΄λμ€
- μ μΈ νμλ interfaceμμ μ μΈν λ©μλλ€μ Overrideλ₯Ό ν΅ν΄ μ μν΄μΌ νλ€.
ex) [class μ΄λ¦] implements [interface μ΄λ¦]
public class studyClass implements study{
@Override
public String interfaceMethod() {
return null;
}
@Override
public String name() {
return null;
}
}
μ΅λͺ ꡬν κ°μ²΄
- ꡬν ν΄λμ€λ₯Ό λ§λλ κ²μ΄ μΌλ°μ μ΄μ§λ§, μΌνμ±μ κ°μ²΄λ₯Ό μν΄μλ λΉν¨μ¨μ μ΄λ―λ‘ ν΄λΉ λ°©λ²μ μ¬μ©νλ€.
ex) [Interface μ΄λ¦] [λ³μλͺ ] = new [Interface μ΄λ¦]()
public class main {
public static void main(String[] args) {
study study = new study() {
@Override
public String interfaceMethod() {
return null;
}
@Override
public String name() {
return null;
}
};
}
}
3. μΈν°νμ΄μ€ λ νΌλ°μ€λ₯Ό ν΅ν΄ ꡬν체λ₯Ό μ¬μ©νλ λ°©λ²
* μΈν°νμ΄μ€ νμ μΌλ‘ κ°μ²΄λ₯Ό μμ±ν μ μμΌλ©° ν΄λΉ κ°μ²΄μ ꡬν ν΄λμ€λ‘ μΈμ€ν΄μ€ν ν μ μλ€.
- μΈν°νμ΄μ€ νμ μΌλ‘ μ μΈν κ°μ²΄λ ꡬν ν΄λμ€ λ΄μμ μμ±ν λ©μλ, νλλ₯Ό μ¬μ©ν μ μλ€.
- κ΄λ ¨ λ΄μ©μ λ€μ΄ μΊμ€ν λλ youn12.tistory.com/29(μμνΈ μμ μΌλΆ κΈ°μ )μ νμΈ
public class studyClass implements study{
//ꡬν ν΄λμ€ λ©μλ
public void say(){
System.out.println("this studyClass");
}
@Override
public String interfaceMethod() {
return null;
}
@Override
public String name() {
return null;
}
}
public static void main(String[] args) {
study study = new studyClass();
studyClass studyClass = new studyClass();
study.say(); // λΆκ°λ₯
studyClass.say();
}
4. μΈν°νμ΄μ€ μμ
* μΆμλ©μλλ λ€μ€ μμμ΄ λΆκ°λ₯νμ§λ§ μΈν°νμ΄μ€λ λ€μ€ μμμ΄ κ°λ₯νλ€.
public class studyClass implements study, study2{
public void say(){
System.out.println("this studyClass");
}
@Override
public String interfaceMethod() {
return null;
}
@Override
public String name() {
return null;
}
}
* μΈν°νμ΄μ€ κ°μ μμμλ extendsκ° μ¬μ©λλ€.
interface study2 {
}
interface study extends study2{
}
5. μΈν°νμ΄μ€μ κΈ°λ³Έ λ©μλ (Default Method), μλ° 8
* Java 8 μ΄μ μ Interfaceμ λ©μλλ μ μΈλ§ κ°λ₯νλ©° ꡬνν μ μμλ€. νμ§λ§ Java 8 μ΄νλΆν° Default λ©μλλ₯Ό μ¬μ©νλ©΄ λ©μλκ° κ΅¬νλΆλ₯Ό κ°μ§ μ μλ€.
- default λ©μλλ μμλ°λ ν΄λμ€μμ νμλ‘ κ΅¬ννμ§ μμλ λλ€.
interface study {
/* default λ©μλ*/
default String nameCheck() {
return "nameCheck";
}
}
6. μΈν°νμ΄μ€μ static λ©μλ, μλ° 8
* Java 8λΆν° μ겨λ static λ©μλλ μΈν°νμ΄μ€λ₯Ό μ΄μ©νμ¬ κ°λ¨ν κΈ°λ₯μ κ°μ§λ μ νΈλ¦¬ν° μ± μΈν°νμ΄μ€λ₯Ό λ§λ€ μ μκ² νλ€.
- μμμ΄ λΆκ°λ₯νλ€.
- μΈν°νμ΄μ€μ μμμ κ°μ νμμΌλ‘ μ°μΈλ€.
- [Interface μ΄λ¦].[static λ©μλ μ΄λ¦]μΌλ‘ μ¬μ©λλ€.
interface study {
/* static λ©μλ*/
static String nameStaticCheck(){
return "nameStaticCheck";
}
}
public class main {
public static void main(String[] args) {
/* static λ©μλ μ¬μ© (interface.method)*/
System.out.println(study.nameStaticCheck());
}
}
7. μΈν°νμ΄μ€μ private λ©μλ, μλ° 9
* μΈν°νμ΄μ€μ λ©μλλ publicμ΄λ€. Java 9λΆν°λ privateλ₯Ό μ¬μ©ν¨μΌλ‘μ¨ μΈλΆμ 곡κ°νμ§ μκ² νλ©° μ½λμ μ€λ³΅μ νΌνκ³ Interfaceμ λν μΊ‘μνλ₯Ό μ μ§ν μ μκ² νλ€.
- private, private static μ¬μ© κ°λ₯ νμ§λ§ κ°κ° νΈμΆ κ°λ₯ν λ©μλκ° λ€λ₯΄λ€.
- private method : private, abstract, default, static λ©μλ νΈμΆ κ°λ₯
- private static method : static, private static λ©μλλ§ νΈμΆ κ°λ₯
βοΈ Refer.
- μΈν°νμ΄μ€ μ μνλ λ°©λ²
http://www.tcpschool.com/java/java_polymorphism_interface
https://www.notion.so/4b0cf3f6ff7549adb2951e27519fc0e6
- μΈν°νμ΄μ€μ κΈ°λ³Έ λ©μλ (Default Method), μλ° 8, μΈν°νμ΄μ€μ static λ©μλ, μλ° 8
https://programmers.co.kr/learn/courses/5/lessons/241
-μΈν°νμ΄μ€μ private λ©μλ, μλ° 9
https://flyburi.com/605
'Live-Study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[10μ£Όμ°¨] λ©ν°μ°λ λ νλ‘κ·Έλλ° (0) | 2021.02.19 |
---|---|
[9μ£Όμ°¨] μμΈ μ²λ¦¬ (0) | 2021.02.19 |
[7μ£Όμ°¨] ν¨ν€μ§ (0) | 2021.02.19 |
[6μ£Όμ°¨] μμ (0) | 2021.02.19 |
[5μ£Όμ°¨] ν΄λμ€ (0) | 2021.01.04 |