今天写了个程序,出了点问题,我把问题抽象成下面的程序:
public class j
{
public j()
{
System.out.println("Hello!");
}
}class b extends j
{
public b()
{
super.j();//这句报错
}
}class j_ex
{
public static void main(String args[])
{
b b1=new b();
}
}
期望是输出Hello!,但是报错。
子类不能继承父类构造方法。。
是不是super只能调用可以从父类继承的方法,如果子类不能从父类继承一个方法,那么即使用super.method()也不能执行?
public class j
{
public j()
{
System.out.println("Hello!");
}
}class b extends j
{
public b()
{
super.j();//这句报错
}
}class j_ex
{
public static void main(String args[])
{
b b1=new b();
}
}
期望是输出Hello!,但是报错。
子类不能继承父类构造方法。。
是不是super只能调用可以从父类继承的方法,如果子类不能从父类继承一个方法,那么即使用super.method()也不能执行?
解决方案 »
- 有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。比如f(13)=6,现在f(1)=1,问有哪些n能满足f(n)=n? 例如:f(13)=6, 因为1,2,3,4,5,6,7,8,9,10,11,12,13.数数1的个数,正好是6.
- 要想学好java是不是一定得了解uml?
- 格式化字符串
- Struts中的一个问题
- 求救!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- CLASSPATH设置无效
- java里要用一些类,为何有些要new有些不要
- 关于java.util包中的Date类或Calendar类
- 【求助】ssl TrustManager 是否默认可以信任任何证书的?
- 求助!Java1.3文档!!!
- java调用存储过程
- java简单题目
符号: 方法 j()
位置: 类 j
super.j();
刚才把程序修改了一下:
public class j
{
public j()
{
System.out.println("Hello!");
}
public void print()
{
System.out.println("Hello World!");
}
}class b extends j
{
public b()
{
//super.j();
super.print();
}
}class j_ex
{
public static void main(String args[])
{
b b1=new b();
}
}
竟然输出了:
Hello!
Hello World!
严重疑惑ing......
2、应该是super() ,而不是super.j(),
class j
{
public j()
{
System.out.println("Hello!");
}
}class b extends j
{
public b()
{
super();//不带点,如果父类构造函数有参数,这样super(参数,参数)
}
}public class j_ex
{
public static void main(String args[])
{
b b1=new b();
}
}
{
public j()
{
System.out.println("Hello!");
}
} class b extends j
{
public b()
{
super.j();//这句报错 //super();
} } class j_ex
{
public static void main(String args[])
{
b b1=new b();
}
}
Hello!
Hello World!
呢?我只在子类中调用了print函数阿!
b类里没调用j类的构造函数,但是java会默认调用父类j的无参构造函数super();