A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王广亚 于 2013-7-5 18:35 编辑

在视频教程中学继承的时候毕老师只是用简单的代码介绍了一下但是复杂的我还是不会分析请帮我分析分析这个程序的子类创建对象时是如何一步一步来创建的最重要的是调用父类的构造函数那块。
  1. <p>public class question {
  2. public static void main(String[] args) {
  3.   Pro p=new Pro("zhangsan","jisu01",1000);
  4.   System.out.print(p.getName());
  5. }
  6. }
  7. abstract class Employee{
  8. private String name;
  9. private String id;
  10. private double pay;
  11. Employee(String name,String id,double pay){
  12.   this.setName(name);
  13.   this.id=id;
  14.   this.pay=pay;
  15. }
  16. public abstract void work();
  17. public void setName(String name) {
  18.   this.name = name;
  19. }
  20. public String getName() {
  21.   return name;
  22. }
  23. }
  24. class Manager extends Employee{
  25. private int bonus;
  26. Manager(String name,String id,double pay,int bonus){
  27.   super(name,id,pay);
  28.   this.bonus=bonus;
  29. }
  30. public void work(){
  31.   System.out.print("manager work");
  32. }
  33. }
  34. class Pro extends Employee{</p><p> Pro(String name, String id, double pay) {
  35.   super(name, id, pay);
  36. }
  37. public void work(){
  38.   System.out.print("Por work");
  39. }
  40. }
  41. </p><p> </p>
复制代码

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

1 个回复

倒序浏览
  1. public class question
  2. {
  3.         public static void main(String[] args)//1, 进入程序
  4.                 {
  5.                         Pro p= new Pro("zhangsan","jisu01",1000);//2, 在堆内存创建对象Pro
  6.                         System.out.print(p.getName());//6, 然后变量p调用getName()
  7.                         //8, 之前初始化好的变量name值为zhangsan, 就输出了zhangsan,
  8.                 }
  9. }
  10. abstract class Employee//4, 于是继承到了这句,
  11. {
  12.         private String name;
  13.         private String id;
  14.         private double pay;
  15.         Employee(String name,String id,double pay)//5, 因为有继承的关系,直接就执行到了父类的构造代码块,
  16.         //然后进行一系列赋值动作, 这不是很好理解吗?
  17.                 {
  18.                         this.setName(name);
  19.                         this.id=id;
  20.                         this.pay=pay;
  21.                 }
  22. public abstract void work();
  23. public void setName(String name)
  24.         {
  25.                 this.name = name;
  26.         }
  27. public String getName()//7, 然后返回变量name的值
  28.         {
  29.                 return name;
  30.         }
  31. }
  32. class Manager extends Employee
  33. {
  34.         private int bonus;
  35.         Manager(String name,String id,double pay,int bonus)
  36.                 {
  37.                         super(name,id,pay);
  38.                         this.bonus=bonus;
  39.                 }
  40. public void work()
  41.                 {
  42.                         System.out.print("manager work");
  43.                 }
  44. }
  45. class Pro extends Employee//3, 执行到这句, 但是因为继承了父类Empioyee
  46. {
  47.         Pro(String name, String id, double pay)
  48.                 {
  49.                         super(name, id, pay);
  50.                 }
  51.         public void work()
  52.                 {
  53.                         System.out.print("Por work");
  54.                 }
  55. }
复制代码
我不知道楼主哪里不明白...我写的也不是很详细, 但是具体的步骤应该就是i这样的吧...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马