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;
}