java招聘试题

/**
 * 在Java中的题目中有这么一道题目,抽象类是否可以继承实体类?
 * Object这个实体类是所有类的父类,当然就应该包括了抽象类啊~
 * 但是与大多数,一样就是什么叫做“前提是实体类必须有有明确的构造函数”
 * 在网上也搜到了一篇讲解这个问题的,但是有点难理解,在原来作者的思路上添加了测试
 * 分为2种情况:
 * 第一种父类中的构造方法私有化:
 * 		私有化之后,eclipse报错是默认构造函数不可见
 * 第二种父类中是带参的构造方法:
 * 		因为父类中申明了带参的构造函数,系统就不会默认赋予无参的构造函数了,此时报错同样的也是不可见的
 * 
 * 也就是说,上述抽象类不能继承父类的原因是因为原有默认的无参的构造函数对抽象类是不可见的,或者说,子类中(抽象类中没有针对父类中构造函数的方法)
 * 所有明确构造函数的意思应该是"父类中的构造函数对抽象类是可见的,或者说抽象类能够针对父类,在创建构造函数时,能够传入相应的参数"
 * @author Administrator
 *
 */
public class Test1 {
	int a;
	int b;
	//第一种情况
//	private Test1(){
//		
//	}
	//第二种情况
//	public Test1(int a,int b){
//		this.a=a;
//		this.b=b;
//	}
}
abstract class B extends Test1{
	/*第一种情况:(构造函数私有化)
	 * 假若将Test1中的构造函数设置为private,这个抽象类就报下面的这个错
	 * Implicit super constructor Test1() is not visible for default constructor. Must define an explicit constructor
	 * 隐式的父类的构造函数是默认构造函数test1()是不可见的。必须定义一个显式构造函数
	 */
	/*第二种情况(超类中是有参的构造函数)
	 * 这时会报
	 * Implicit super constructor Test1() is undefined for default constructor. Must define an explicit constructor
	 * 这个错误与上面一样,同样是找不到默认的构造函数->>但是加上了这个就不会报错了
	 * public B(int a,int b){
	 *	 super(a, b);
	 * }
	*/
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值