c++与java中子类中调用父类成员的方法


java中:
import java.util.Scanner;
public class ClassTest{
   public static void main(String args[]){
      child ch=new child(2);
      parent p=ch;
      p.print();
      //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类!
   }
} 

class parent{
   int xx;
   parent(int x){
      xx=x;
   }
   void print(){
      System.out.println("this is parent!");
   }
   int f(){
      int n;
      Scanner s=new Scanner(System.in);
      n=s.nextInt();
      return n;
   }
}

class child extends parent{
   int xx;
   void print(){
      System.out.println("this is child!");
      System.out.println("父类中的f()函数得到的值:" + super.f());//当然也可以通过super来区分子类与父类同名函数的方法
      System.out.println("子类中的f()函数得到的值:" + f());
   }
   void print2(){
      System.out.println("this is test!");
   }
   child(int x){
      super(x);//调用父类的构造方法
      xx=5;
   }
   int f(){
      System.out.println("父类中的xx值:" + super.xx);//通过super.xxx可以区分子类与父类同名的变量
      System.out.println("子类中的xx值:" + xx);
      return 15;
   }
}
c++中:
#include<iostream> 
using namespace std;
class parent
{
public:
   int p;
   parent(int x)
   {
       p=x;
   }
   void print()
   {
      cout<<"this is parent" <<endl;
   } 
   int f()
   {
    return 11; 
   } 
}; 

class child : public parent
{
public:
   int p; 
   child(int x):parent(x)
   {
       p=15;
   }
   int f()
   {
      return 22;
   } 
   void print()
   {
       cout<<"this is child!" <<endl;
       cout<<"父类中的 p 变量值:"<<parent::p<<endl;
       cout<<"子类中的 p 变量值:"<<p<<endl; 
       
       cout<<"父类中的f()函数值:"<<parent::f()<<endl;
       cout<<"子类中的f()函数值:"<<f()<<endl; 
   } 
   void print2()
   {
      cout<<"this is test!" <<endl;
   } 
};

int main()
{
   child ch(2);
   ch.print();
   return 0;
}

上一篇:3D人脸识别快速发展,你觉得安全吗?


下一篇:[J2EE]MyBatis增删改查