C++/java 계승 클래스의 다태적 상세 및 실례 코드

3248 단어 C++java계승다태
C++/java 계승 클래스의 다태적 상세 정보
C++와 자바를 배운 사람들은 모두 알고 있다. 그들 둘은 모두 대상을 대상으로 프로그래밍을 할 수 있기 때문에 대상을 대상으로 프로그래밍하는 세 가지 특성은 바로 봉인, 계승, 다태이다. 오늘 우리는 C++와 자바의 다태적 측면에서의 차이를 간단하게 이해하자.
우선 우리는 각자 하나의 사례를 본다.
C++

// 
class Animal {

public:
 char name[128];
 char behavior[128];

 void outPut() {
  cout << "Animal" << endl;
 }

 void outPutAnimal() {
  cout << "Father" << endl;
 }

 Animal() {
  strcpy(name, "Animal");
  strcpy(behavior, "Call");
 }
};

class Dog: public Animal {

public:
 // 
 char name[128];
 char sex;

 // 
 void outPut() {
  cout << "Dog" << endl;
 }

 void outPutDog() {
  cout << "Son" << endl;
 }

 Dog() {
  strcpy(name, "Dog");
  sex = 'M';
 }
};

상기 두 종류는 모두 매우 간단하니, 우리는 그 테스트 코드와 결과를 한번 봅시다.

/*
 Java 
 Dog dog;
 cout << dog.name << endl;
 cout << dog.sex << endl;
 cout << dog.behavior << endl;
 dog.outPut();
 dog.outPutAnimal();
 dog.outPutDog();

 // 
 dog.Animal::outPut();
*/

// :
 Animal *dog = new Dog;

 cout << dog->name << endl;
 cout << dog->behavior << endl;
 dog->outPut();
 dog->outPutAnimal();

// 
Animal
Call
Animal
Father

모든 표현이 부류의 행위임을 알 수 있다. 같은 속성이든 다시 쓰는 방법이든.여기서 설명할 필요가 있습니다. 만약에 하위 클래스가 상위 클래스의 구성원 함수를 숨겼다면, 상위 클래스의 모든 동명의 구성원 함수 (다시 불러오는 함수) 는 숨겨집니다.상위 클래스에 숨겨진 함수에 액세스하려면 상위 클래스 이름을 통해 액세스해야 합니다(dog.Animal::outPut();).
다태적인 상황에서 우리가 방문하는 것은 모두 부류의 행위이다. 그러면 어떻게 해야만 부류의 함수에 접근할 수 있습니까?답은 허함수를 정의함으로써 이루어진다. 이것은 우리 뒤에 있는 박문 설명이다.
지금 우리는 자바의 표현을 살펴보고 있다.
Java

// 
public class Animal {

 public String name = "Animal";
 public String behavior = "Call";

 public void outPut() {
  System.out.println("Animal");
 }

 public void outPutAnimal() {
  System.out.println("Father");
 }
}

// 
public class Dog extends Animal{

 public String name = "Dog";
 public char sex = 'M';

 public void outPut() {
  System.out.println("Dog");
 }

 public void outPutDog() {
  System.out.println("Son");
 }
}

자류도 부류와 같은 속성을 정의하는 동시에 부류의 방법을 다시 썼다. 우리는 그 테스트 방법과 테스트 결과를 보자.

public static void main(String[] args) {

 Animal dog = new Dog();

 System.out.println(dog.name);
 System.out.println(dog.behavior);
 dog.outPut();
 dog.outPutAnimal();

}

// 
Animal// 
Call
Dog// 
Father

여기서 알 수 있듯이 자바와 C++는 여전히 차이가 있다. 자바의 속성은 부류의 행위를 나타내지만 다시 쓰는 방법은 부류의 행위이고 C++는 모두 부류의 행위이다.
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기