黑马程序员技术交流社区
标题:
自学基础——abstract的问题
[打印本页]
作者:
编程学徙
时间:
2014-6-5 15:10
标题:
自学基础——abstract的问题
本帖最后由 编程学徙 于 2014-6-6 04:08 编辑
abstract class YuanGong
{
private String name;
private int age;
private double pay;
public abstract void work();
public void speak()
{
System.out.printf("My name is %s,I'm %d",name,age);
}
YuanGong(String name,int age)
{
this.name = name;
this.age = age;
}
}
class GuYuan extends YuanGong
{
public void work()
{
System.out.println("I'm working hard!");
}
}
public class AbstractDemo
{
public static void main(String[] args)
{
GuYuan yuan = new GuYuan("zhang san",18);
yuan.speak();
yuan.work();
}
}
复制代码
我觉得我跟毕老师的代码基本一样啊……为什么没有一个正确的结果?
2.jpg
(65.66 KB, 下载次数: 5)
下载附件
2014-6-5 15:10 上传
作者:
肥洋洋
时间:
2014-6-5 15:31
子类的要写有参的构造函数
作者:
肥洋洋
时间:
2014-6-5 15:39
当父类没有无参的构造函数的时候,子类中必须手动的声明调用哪个父类的构造函数。子类的构造函数不写的话会有一个默认的无参的构造函数,默认的无参的构造函数里面有哥隐藏的super(),父类的无参构造函数已经没有了,所以会报错
作者:
雾里看花。
时间:
2014-6-5 16:39
当父类没有无参的构造函数的时候,子类中必须手动的声明调用哪个父类的构造函数。子类的构造函数不写的话会有一个默认的无参的构造函数,默认的无参的构造函数里面有哥隐藏的super(),父类的无参构造函数已经没有了,所以会报错
作者:
阿布Yocan
时间:
2014-6-5 17:23
去这里看看,也许对你有帮助
http://blog.csdn.net/newmoon2004/article/details/5951437
作者:
阿苏勒
时间:
2014-6-5 17:26
好问题啊,我常常会犯的问题。
作者:
pk49800
时间:
2014-6-5 21:03
abstract class YuanGong
{
private String name;
private int age;
private double pay;
public abstract void work();
public void speak()
{
System.out.printf("My name is %s,I'm %d",name,age);
}
YuanGong(String name,int age)
{
this.name = name;
this.age = age;
}
}
class GuYuan extends YuanGong
{ //声明调用父类的有参构造方法
GuYuan(String name, int age) {
super(name, age);
// TODO Auto-generated constructor stub
}
public void work()
{
System.out.println("I'm working hard!");
}
}
public class AbstractDemo
{
public static void main(String[] args)
{
GuYuan yuan = new GuYuan("zhang san",18);
yuan.speak();
yuan.work();
}
}
复制代码
作者:
编程学徙
时间:
2014-6-6 04:07
原来如此,了解了,谢谢大家!!
以下是修改过的代码……
abstract class YuanGong
{
private String name;
private int age;
private double pay;
public abstract void work();
public void speak()
{
System.out.printf("My name is %s,I'm %d",name,age);
}
/*YuanGong()
{
}*/
YuanGong(String name,int age)
{
this.name = name;
this.age = age;
}
}
class GuYuan extends YuanGong
{
/*
要写出子类的有参构造函数,
并在其中用super调用父类的有参构造函数,
如此,才能在创建子类对象时,把参数传给对象。
*/
GuYuan(String name,int age)
{
super(name,age);
}
public void work()
{
System.out.println("I'm working hard!");
}
}
public class AbstractDemo
{
public static void main(String[] args)
{
GuYuan yuan = new GuYuan("zhang san",18);
yuan.speak();
yuan.work();
}
}
复制代码
作者:
杨胜男
时间:
2014-6-6 10:23
子类要有带参数的构造函数,不然新建对象无法初始化
作者:
GoodBoy123
时间:
2014-6-6 19:09
本想复制下来看看,但是发现复制不了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2