C/C++サブクラス呼び出し親クラスのプライベートメンバー変数(比較JAVA)

1908 ワード

C++
Personではageがプライベートであり,Persron::getAge()でageの値を取得できる.
#include 
using namespace std;

class Person 
{
  public:
  Person(int a) {
    this->age = a;
  }

  int getAge() {
    return age;
  }

  private:
    int age;
};

class Man : public Person
{
  public:
    Man(string name, int add, int age):Person(age) {
      this->name = name;
      this->add = add;
    }   

    int getAge() {
      return add + Person::getAge();
    }   

    string getName() {
      return name;
    }   

  private:
    string name;
    int add;
};

int main()
{
  Man m1("Test", 12, 15);

  cout << m1.getName() << " " << m1.getAge() << endl;                                                                                                                                                
  return 0;
}

JAVA:superを使用して親クラスのリードドメイン関数getAge()を呼び出す
Person.java
                                                                                                                                                                                                     
package test;

public class Person {
  public Person(int age) {
    this.aAge = age;
  }

  public int getAge() {
    return aAge;
  }

  public void setAge(int age) {
    aAge = age;
  }

  private int aAge;
}

Male.java
package test;


public class Male extends Person 
{
  public Male(int age, int add) {                                                                                                                                                                    
    super(age);
    this.add = add;
  }

  public int getAge() {
    return this.add + super.getAge();
  }

  private int add;

  public static void main(String[] args) {
    System.out.println(new Male(12, 15).getAge());
  }

}
~