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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 623927408 中级黑马   /  2016-9-22 10:20  /  1189 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[Java] 纯文本查看 复制代码
class TestA{ 
	public  TestA(){ 
System.out.println("A"); 
	} 
} 

class TestB extends TestA{ 
	public static TestB(){ 
		System.out.println("B"); 
	} 
	
} 

public class Test{ 
	public static void main(String[] args){ 
		TestB testB=new TestB(); 
	} 
} 


10 个回复

倒序浏览
---------- javac ---------- C:\Users\Administrator\Desktop\Test.java:8: 错误: 此处不允许使用修饰符static         public static TestB(){  不明白错误的原因,为什么不能用static
回复 使用道具 举报
继承来的方法不能用static修饰
回复 使用道具 举报
请原谅我笑出声 发表于 2016-9-22 10:34
继承来的方法不能用static修饰

应该是构造方法不能用static修饰
java中构造方法可以有任何访问的修饰符,public、private、protected或者没有修饰符 ,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。
解释:构造方法用于初始化一个实例对象,所以static修饰是没有任何意义的;多个线程不会同时创建内存地址相同的同一个对象,所以synchronized修饰没有意义;
构造方法不能被子类继承,所以final和abstract修饰没有意义。
回复 使用道具 举报
你这方法没有返回值,是构造方法,构造方法不能用static修饰的啊
回复 使用道具 举报 1 0
都是大神
回复 使用道具 举报
623927408 发表于 2016-9-22 11:34
应该是构造方法不能用static修饰
java中构造方法可以有任何访问的修饰符,public、private、protected或 ...

嗯嗯,你的很对, 构造方法确实不能被继承,这也是继承不能做到的
回复 使用道具 举报
623927408 发表于 2016-9-22 11:34
应该是构造方法不能用static修饰
java中构造方法可以有任何访问的修饰符,public、private、protected或 ...

楼主强势啊!解释的很全面
回复 使用道具 举报
构造方法不能是静态的吧
回复 使用道具 举报
LShu 中级黑马 2016-9-22 22:52:43
10#
哥们,子类中是可以用静态方法的啊,但是你这个子类中是在构造方法中使用的静态方法,那肯定是不行的,建议去看一下构造方法的特点以及他是有那些部分组成的..
回复 使用道具 举报
{:2_31:}        ...............................
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马