using System;
namespace Exam_Inherit2
{
//基类
public class Person
{
private string _name;//私有成员
private uint _age;//私有成员 public void GetInfo()//为了在类外访问
{
Console.WriteLine("请输入您的姓名和年龄");
_name=Console.ReadLine();
_age=uint.Parse(Console.ReadLine());
}
public void DispInfo()
{
Console.WriteLine("尊敬的{0},您的年龄是{1}",_name,_age);
}
}
//Person派生类的Student
public class Student:Person//使用:表示继承自基类
{
private string _school;
private uint _eng;
private uint _math;
private uint _com;//私有成员的访问权限
private uint _total;//总分 //获得学生的学校和成绩
public uint GetMarks()
{
Console.WriteLine("请输入您的学校");
_school=Console.ReadLine();
Console.WriteLine("请分别输入您的英语、数学、计算机的成绩");
_eng=uint.Parse(Console.ReadLine());
_math=uint.Parse(Console.ReadLine());
_com=uint.Parse(Console.ReadLine());
_total=_eng+_math+_com;
return _total;
}
private void DispMarks()
{
Console.WriteLine("您的总成绩是:{0}",_total);
}
}
//大学肄业生(没有毕业的学生)继承自学生类
//派生类是否可以继承基类的所有成员?
public class UnderGraduate:Student
{
public void ChkUp()
{
Console.WriteLine("要上升一级,要求总分不低于150分");
if(this.GetMarks()>149)
Console.WriteLine("合格,请升级!");
else
Console.WriteLine("不合格,不好意思,留级吧!");
}
}
public class Exam_Two
{
static void Main(string[]args)
{
UnderGraduate objUnderGraduate=new UnderGraduate();
objUnderGraduate.GetInfo();
objUnderGraduate.DispInfo();
//objUnderGraduate.DispMarks();
objUnderGraduate.ChkUp();
}
}
}
//如题,是否可以做其它一些测试?

解决方案 »

  1.   

    不能,只能访问public或者protected的成员
      

  2.   

    派生类不能对基类私有成员进行访问。要在派生类中对基类成员进行访问,可以:
    1,在派生类中对基类成员的public属性进行访问,以间接访问基类的私有成员;
    2,在基类中将私有成员定义为protected访问属性,以在派生类中直接对其进行访问;
      

  3.   

    派生类只能继承public和protected成员..不能继承私有成员,即private型..
      

  4.   

    protect方法继承后可以访问,私有方法继承后不能访问
      

  5.   

    所有的都继承,但是不能访问,只能用父类的非private方法间接访问