riboooo
Daily Traveler 리보
riboooo
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • 프로젝트,발표 (2)
    • IT (67)
      • HTML ,CSS (3)
      • JAVA (22)
      • SQL (37)
      • 자료구조,알고리즘 (0)
      • PYTHON (4)
      • 보안 (0)
      • 서버 구축 (0)
      • GITHUB (1)
    • About ribo (2)
      • 커리어 (1)
      • 회고록 (1)
      • 버킷리스트 (0)
      • 일기 (0)
      • 잡담 (0)
    • 책 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바코딩컨벤션
  • ORACLE CASE
  • ORACLE 조건문
  • oracle
  • django설계
  • 네이버핵데이
  • INSTALLED_APPS
  • java
  • join
  • 오라클
  • non-prewise
  • ORACLE 숫자 함수
  • prewise
  • SQL
  • 시간 중복 활용
  • ORACLE NULL 함수
  • inspectdb
  • select
  • Django
  • ORACLE 날짜 관련 함수

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
riboooo

Daily Traveler 리보

IT/JAVA

[JAVA]추상클래스, 인터페이스

2022. 1. 11. 22:03

추상클래스

추상클래스

💡 추상 메서드를 하나라도 가지고 있는 클래스

abstract class class_name{ }

  • 객체 생성에서 사용 할 수 없음

왜 만드나?

  • 자식클래스에 어떤 메소드를 만들어야하는지 예시를 들어줌
  • 상속받는 클래스에서 오버라이딩을 통해서 내용을 만들어줌

추상메서드

💡 선언부만 있고 구현부는 없는 메서드

abstract void method_name( );

package f_oop2;

public abstract class Animal {    // 추상 클래스

    void run(){
        System.out.println("달려간다~");
    }

    abstract void sound();   // 추상메서드

}

class Dog extends Animal{

    @Override
    void sound(){
        System.out.println("멍멍!!");
    }

}

class Bird extends Animal{

    @Override
    void sound(){
        System.out.println("짹짹");
    }
}

인터페이스

💡 추상 클래스와 비슷하지만 **추상 메서드, 상수**만 가질 수 있는 형태

interface SampleInterface { }

  • 인터페이스의 모든 멤버 변수는 public static final 제어자를 사용한다.
  • 모든 멤버변수의 제어자가 같기때문에 생략가능
  • 인터페이스의 모든 멤버 메소드는 public abstract 제어자를 사용한다
  • 모든 멤버메소드의 제어자가같기때문에 생략가능

클래스가 인터페이스를 상속받을때

class CLASS_NAME implements INTERFACE_NAME1
[,INTERFACE_NAME2] { }

  • 클래스에서 인터페이스 여러개를 상속받을수 있음.
    내용이 없어서 같은 메소드의 이름도 상속 가능
package f_oop2;

public interface SampleInterface {

    public static final int NUM1 = 1;
    int NUM2 = 2;
    public abstract void method1();
    void method2();
}
class SampleImplement **implements** SampleInterface, SampleInterface2{
    @Override                       // 여러개 상속받을수 있음
    public void method1() {  // 메소드 이름이 중복되어도 이상 없음
    }

    @Override
    public void method2() {
    }

    @Override
    public void method3() {
    }    

}

interface SampleInterface2{
    void method1();
    void method3();
}
반응형

'IT > JAVA' 카테고리의 다른 글

[우테캠pro] 프리코스 1주차 - 숫자야구 리뷰  (0) 2022.10.07
[우테캠pro] 프리코스 1주차 - 학습테스트  (0) 2022.10.02
[JAVA] 상속  (0) 2022.01.11
[JAVA] OOP, class  (0) 2022.01.11
[JAVA] 예외처리  (0) 2022.01.11
    riboooo
    riboooo
    최준영 https://github.com/riboooo

    티스토리툴바