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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ∑づ東〗 初级黑马   /  2012-5-20 20:59  /  1668 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

abstract class Employee
{
//姓名
String name;
//职位
String position;
//地址
String address;
Employee(){}
//用于显示属性
abstract void show();
}
class Manager extends Employee
{
//部门
String department;
Manager(){}
Manager(String name,String position,String address,String department)
{
  this.name = name;
  this.position = position;
  this.address = address;
  this.department = department;
}
void show()
{
  System.out.println(name+"  "+position+"  "+address+"  "+department);
}
}
class Director extends Employee
{
//补助
double transportAllowance;
Director(){}
Director(String name,String position,String address,double transportAllowance)
{
  this.name = name;
  this.position = position;
  this.address = address;
  this.transportAllowance = transportAllowance;

//听 说这里可以用super();代替。但是这个super()到底是怎么来的?怎么代入进去的?求解!
}
void show()
{
  System.out.println(name+"  "+position+"  "+address+"  "+transportAllowance);
}
}

class AbstractTest
{
public static void main(String[] args)
{
  //抽象类不能够实例化
  //Employee e = new Employee();
  
  Manager m = new Manager("黄岩岛","经理","南海","外交部");
  m.show();
  Director d = new Director("钓鱼岛","程序员","东海",123456789.0);
  d.show();
}
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
本帖最后由 杨尧 于 2012-5-20 21:13 编辑
  1. Director(String name,String position,String address,double transportAllowance)
  2. {
  3.   this.name = name;
  4.   this.position = position;
  5.   this.address = address;
  6.   this.transportAllowance = transportAllowance;

  7. //听 说这里可以用super();代替。但是这个super()到底是怎么来的?怎么代入进去的?求解!
  8. //super代替什么?代替上面的代码吗?肯定不能呀,super()是掉用父类的构造方法,这个父类的构造方法是空的,
  9. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
super调用的是父类的构造方法,你父类的构造函数什么都没有,没有意义。
super的使用:直接super就是了,当然也可以往里面传入参数。
回复 使用道具 举报
Director(String name,String position,String address,double transportAllowance)
{
  this.name = name;
  this.position = position;
  this.address = address;
  this.transportAllowance = transportAllowance;

//听 说这里可以用super();代替。但是这个super()到底是怎么来的?怎么代入进去的?求解!
}
完全没希望,你听错了吧,应该是构造函数第一行有个隐式的super()把
回复 使用道具 举报
super即是父类的引用,
super();即是引用父类无参构造函数。
super(参数);即是引用带参构造方法
一般用给本类进行初始化

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马