本帖最后由 王广亚 于 2013-7-5 18:34 编辑
首先第一个问题:子类能不能从父类继承父类的私有变量和方法?
如果能的话,请看在视频教程上第七天的第5节有这样一段- <p>class Fu{</p><p>void show(){</p><p>System.out.println("Fu show");</p><p>}</p><p>prinvate void speak(){ //注意此处是私有函数</p><p>System.out.println("vb");</p><p>}</p><p>}</p><p>class Zi extends Fu{</p><p>void speak(){ //教程上说此处不叫复写,原因是Fu类私有化,Zi类不知道Fu类有speak方法,就不叫重写。</p><p>System.out.println("java");</p><p>}</p><p>void Show(){</p><p>System.out.println("zi show");</p><p>}</p><p>}
- </p><p> </p>
复制代码 如果不能的话在视频教程的第七天的第十节抽象类的练习中有这样一段代码
(不知道这段代码是毕老师只为讲述抽象类而随便写的还是真的是没有错误的代码?)- <p>abstract class Employee{
- private String name; //如果私有成员不能被继承的话此处定义个name又有何用?下面的子类如果创建对象能够被初始化吗?
- private String id;
- private double pay;
- Employee(String name,String id,double pay){
- this.name=name;
- this.id=id;
- this.pay=pay;
- }
- public abstract void work();
- }
- class Manager extends Employee{
- private int bonus;
- Manager(String name,String id,double pay,int bonus){
- super(name,id,pay); //此处调用了父类的构造方法
- this.bonus=bonus;
- }
- public void work(){
- System.out.print("manager work");
- }
- }
- class Pro extends Employee{
- Pro(String name, String id, double pay) {
- super(name, id, pay); //此处也调用了父类的构造方法
- }
- public void work(){
- System.out.print("Por work");
- }
- }</p><p>/*</p><p>毕老师没有在教程中没有写主函数,我在这为了测试随便加一个主函数用来创建一个子类的对象,但调用变量时,当场报错,不知道是不是我这个主函数有问题,还是让我测试到私有成员不能被子类继承。</p><p>*/</p><p>public class question {
- public static void main(String[] args) {
- Pro p=new Pro("zhangsan","jisu01",1000);
- System.out.print(p.name); //在编辑器中此处报错
- }
- }</p>
复制代码 |