Java9일차 2(추상)

2022. 11. 22. 11:10코딩배움일지/JAVA

클래스 ( 변수와 메소드를 포함한다.)

super.move = method이다. = super.move = 메소드를 호출한걸다

 

class A

메소드 정의 를 해야 

super.move를 호출 할 수 있다.

메소드 호출이라는 것은 기능이 동작하는 것이다.

 

public abstract class Animal {

    /*
    추상메서드를 하나라도 포함하는 클래스
    추상클래스로 정의하여야 한다.
    */
    private String name;

    public Animal(){ /*기본 생성자 정의하여야 상속 가능*/ /*생성자는 숨겨져 있다.*//*건드렸으면 다시 새로 만들어 줘야함*/

    }

    public Animal(String name) {
        System.out.println(name + "이(가) 생성되었습니다.");
        //this.name = name;
    }
   

    //추상메소드

    public abstract void move(); /*구현부 {}가 필요 없음*/ /*꼭 필요하지는 않다.*/ /*새로 new 할 수 없다.*/

    public void eat(){
        System.out.println("동물이 밥을 먹습니다.");
    }


}

 

 

public class Human extends Animal{
    public Human(){
        super("사람"); /*super는 대개 생략되어 있다.*/
    }

    @Override
    public void move(){
        System.out.println("사람이 움직인다.");
    }

}

 

 

public class Tiger extends Animal{


    @Override
    public void move() {
        System.out.println("호랑이가 움직인다.");

    }
}

 

public class AnimalMain{
    public static void main(String[] args) {

        Animal[] animals = new Animal[2];

        animals[0] = new Human(); /*사람이 생성 되었습니다. 객체 생성 */
        animals[1] = new Tiger();

        for (int i = 0; i < animals.length; i++){
            animals[i].move();
        }

//        Animal animal = new Animal();
//        animal.move();





    }

}

'코딩배움일지 > JAVA' 카테고리의 다른 글

Java 9일차 4(인터페이스)  (0) 2022.11.22
Java 9일차 3  (0) 2022.11.22
Java 9일차 1(업캐스팅 다운캐스팅)  (0) 2022.11.22
Java 8일차 4(다운캐스팅)  (0) 2022.11.21
Java 8일차 3(업캐스팅)  (0) 2022.11.21