관리 메뉴

Frog is cry

추상클래스 본문

JAVA/복습

추상클래스

Frog is cry 2020. 7. 22. 19:57

ex01

package 추상클래스.ex01;

public abstract class Phone {

	// 필드
	public String owner;
	
	// 생성자
//	public Phone() {;}	 기본 생성자 생성으로 인해 추상클래스 에러없애줌
	
	public Phone(String owner) {
		this.owner = owner;
	}
	// 메소드
	public void turnOn() {
		System.out.println("폰 전원을 켭니다.");
	}
	
	public void turnOff() {
		System.out.println("폰 전원을 끕니다.");
	}
	
	
}
package 추상클래스.ex01;

public class SmartPhone extends Phone{

	// 생성자
	public SmartPhone(String owner) {
		super(owner);
	}
	
	// 메소드
	public void internetSearch() {
		System.out.println("인터넷 검색을 합니다.");
	}
	
		
}
package 추상클래스.ex01;

public class Phone_Ex {
	public static void main(String[] args) {
		
//		Phone phone = new Phone(); 추상클래스로 직접할당이 불가함
		
		SmartPhone sp = new SmartPhone("홍길동");
		
		sp.turnOn();
		sp.internetSearch();
		sp.turnOff();
	}
}

ex02

package 추상클래스.ex02;

public abstract class Animal {
	public String kind;
	
	public void breathe() {
		System.out.println("숨을 쉽니다.");
	}
	
	public abstract void sound();
	
}
package 추상클래스.ex02;

public class Animal_Ex {
	
	public static void main(String[] args) {
		
		Dog dog = new Dog();
		Cat cat = new Cat();
		
		dog.sound();
		cat.sound();
		
		Animal animal = null;
		
		animal = new Dog();
		animal.sound();
		
		animal = new Cat();
		animal.sound();
		
		animalSound(new Dog());
		animalSound(new Cat());
		
	}
	
	public static void animalSound(Animal animal) {
		animal.sound();
	}
}
package 추상클래스.ex02;

public class Cat extends Animal{

	public Cat() {
		this.kind = "포유류";
	}
	
	@Override
	public void sound() {
		System.out.println("야옹");
	}
}
package 추상클래스.ex02;

public class Dog extends Animal{	// sound를 재정의하지 않으면 오류가남

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

'JAVA > 복습' 카테고리의 다른 글

인터페이스와 추상클래스의 차이  (0) 2020.07.25
인터페이스  (0) 2020.07.22
타입변환과다형성  (0) 2020.07.22
메소드 재정의(오버라이딩)  (0) 2020.07.22
getter_setter  (0) 2020.07.22
Comments