java
이 자습서에서는 예제를 통해 Java 추상 클래스와 메서드에 대해 알아봅니다. 또한 Java의 추상화에 대해서도 배웁니다.
Java의 추상 클래스는 인스턴스화할 수 없습니다(추상 클래스의 개체를 만들 수 없음). abstract
을 사용합니다. 추상 클래스를 선언하는 키워드. 예를 들어,
// create an abstract class
abstract class Language {
// fields and methods
}
...
// try to create an object Language
// throws an error
Language obj = new Language();
추상 클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있습니다. 예를 들어,
abstract class Language {
// abstract method
abstract void method1();
// regular method
void method2() {
System.out.println("This is regular method");
}
}
비추상 메소드에 대해 알아보려면 Java 메소드를 방문하십시오. 여기에서는 추상 메서드에 대해 알아보겠습니다.
<시간>
본체가 없는 메소드를 추상 메소드라고 합니다. 동일한 abstract
을 사용합니다. 추상 메서드를 만드는 키워드입니다. 예를 들어,
abstract void display();
여기, display()
추상적인 방법이다. display()
의 본문 ;
으로 대체됨 .
클래스에 추상 메서드가 포함되어 있으면 클래스를 추상으로 선언해야 합니다. 그렇지 않으면 오류가 발생합니다. 예를 들어,
// error
// class should be abstract
class Language {
// abstract method
abstract void method1();
}
<시간> 추상 클래스를 인스턴스화할 수는 없지만 추상 클래스에서 하위 클래스를 만들 수 있습니다. 그런 다음 하위 클래스의 개체를 사용하여 추상 클래스의 멤버에 액세스할 수 있습니다. 예를 들어,
abstract class Language {
// method of abstract class
public void display() {
System.out.println("This is Java Programming");
}
}
class Main extends Language {
public static void main(String[] args) {
// create an object of Main
Main obj = new Main();
// access method of abstract class
// using object of Main class
obj.display();
}
}
출력
This is Java programming
위의 예에서 Language라는 추상 클래스를 만들었습니다. . 클래스에 일반 메서드 display()
이(가) 포함되어 있습니다. .
추상 클래스를 상속하는 Main 클래스를 만들었습니다. 진술을 주목하십시오.
obj.display();
여기, obj 자식 클래스 Main의 개체입니다. . obj 개체를 사용하여 추상 클래스의 메서드를 호출합니다. .
<시간>추상 클래스에 추상 메서드가 포함된 경우 추상 슈퍼클래스에서 상속된 모든 자식 클래스는 추상 메서드의 구현을 제공해야 합니다. 예를 들어,
abstract class Animal {
abstract void makeSound();
public void eat() {
System.out.println("I can eat.");
}
}
class Dog extends Animal {
// provide implementation of abstract method
public void makeSound() {
System.out.println("Bark bark");
}
}
class Main {
public static void main(String[] args) {
// create an object of Dog class
Dog d1 = new Dog();
d1.makeSound();
d1.eat();
}
}
출력
Bark bark I can eat.
위의 예에서 추상 클래스 Animal을 만들었습니다. . 클래스에 추상 메서드 makeSound()
이(가) 포함되어 있습니다. 및 비추상 메서드 eat()
.
우리는 서브클래스 Dog를 상속받았습니다. 슈퍼클래스 동물에서 . 여기에서 하위 클래스 Dog 추상 메서드 makeSound()
에 대한 구현을 제공합니다. .
그런 다음 d1 개체를 사용했습니다. 개 makeSound()
메서드를 호출하는 클래스 및 eat()
.
참고 :개 클래스는 추상 메서드 makeSound()
의 구현을 제공하지 않습니다. , 개 추상화로도 선언해야 합니다. 이는 하위 클래스 Dog 때문입니다. makeSound()
상속 동물 .
추상 클래스는 일반 클래스와 같은 생성자를 가질 수 있습니다. 그리고 super
을 사용하여 하위 클래스에서 추상 클래스의 생성자에 액세스할 수 있습니다. 예어. 예를 들어,
abstract class Animal {
Animal() {
….
}
}
class Dog extends Animal {
Dog() {
super();
...
}
}
여기에서는 super()
을 사용했습니다. Dog 생성자 내부 Animal의 생성자에 액세스하기 위해 .
super
항상 하위 클래스 생성자의 첫 번째 명령문이어야 합니다. 자세히 알아보려면 Java 슈퍼 키워드를 방문하십시오.
추상 클래스 및 메서드의 주요 용도는 Java에서 추상화를 달성하는 것입니다.
추상화는 불필요한 세부 사항을 숨기고 필요한 정보만 표시할 수 있게 해주는 객체 지향 프로그래밍의 중요한 개념입니다.
이를 통해 더 간단하고 높은 수준의 아이디어로 세부 사항을 생략하거나 숨김으로써 복잡성을 관리할 수 있습니다.
추상화의 실제 예는 오토바이 브레이크가 될 수 있습니다. 우리는 브레이크가 하는 일을 알고 있습니다. 브레이크를 밟으면 오토바이가 멈춥니다. 그러나 브레이크의 작동은 우리에게 숨겨져 있습니다.
브레이크 작동을 숨김으로써 얻을 수 있는 가장 큰 장점은 이제 제조업체가 오토바이에 따라 브레이크를 다르게 구현할 수 있지만 브레이크가 하는 일은 동일하다는 것입니다.
Java 추상화를 더 잘 이해하는 데 도움이 되는 예를 들어 보겠습니다.
abstract class MotorBike {
abstract void brake();
}
class SportsBike extends MotorBike {
// implementation of abstract method
public void brake() {
System.out.println("SportsBike Brake");
}
}
class MountainBike extends MotorBike {
// implementation of abstract method
public void brake() {
System.out.println("MountainBike Brake");
}
}
class Main {
public static void main(String[] args) {
MountainBike m1 = new MountainBike();
m1.brake();
SportsBike s1 = new SportsBike();
s1.brake();
}
}
출력 :
MountainBike Brake SportsBike Brake
위의 예에서 추상 슈퍼 클래스 MotorBike를 만들었습니다. . 슈퍼클래스 MotorBike 추상 메소드 brake()
이 있습니다. .
brake()
메소드는 MotorBike 내에서 구현할 수 없습니다. . 자전거마다 브레이크의 구현 방식이 다르기 때문입니다. 따라서 MotorBike의 모든 하위 클래스는 brake()
의 다른 구현이 있을 것입니다. .
따라서 brake()
의 구현은 모터바이크에서 숨겨져 있습니다.
여기, MountainBike brake()
자체 구현 및 스포츠바이크 brake()
자체 구현 .
참고 :Java에서 추상화를 달성하기 위해 인터페이스를 사용할 수도 있습니다. 자세한 내용은 Java 인터페이스를 참조하십시오.
<시간>abstract
을 사용합니다. 추상 클래스와 메소드를 생성하는 키워드입니다.
Animal.staticMethod();
java
문자열이란 무엇입니까? 문자 그대로의 문자열은 일련의 문자입니다. 야, 문자라고 했지, 자바의 원시 데이터 타입이 아니야. 예, 기술적인 측면에서 기본 Java String은 기본적으로 문자 배열입니다. 따라서 위의 ROSE 문자열 는 다음과 같이 나타낼 수 있습니다. – 이 튜토리얼에서 배우게 될 내용- 문자열이란 무엇입니까? 문자열을 사용하는 이유 문자열 구문 예제 문자열 연결 중요 자바 문자열 방법 문자열을 사용하는 이유 현대 컴퓨터 과학의 주요 기능 중 하나는 인간의 언어를 처리하는 것입니다. 숫자가
자바에서 추상화란 무엇입니까? JAVA의 추상화 필수 속성만 표시하고 사용자에게 개체의 불필요한 세부 정보를 숨깁니다. Java에서 추상화는 Abstract 클래스, Abstract 메서드 및 인터페이스를 사용하여 수행됩니다. 추상화는 프로그래밍 복잡성과 노력을 줄이는 데 도움이 됩니다. 이 튜토리얼에서는 배우게 될 것입니다- 추상 클래스란 무엇입니까? 추상 방법이란 무엇입니까? 추상화 코드 예 자바의 추상 클래스 자바의 최종 키워드 추상 클래스란 무엇입니까? 추상 클래스 하나 이상의 추상 메소드를 선언하는 Java의 클