Java学习第八天

抽象类:

抽象类可以没有抽象方法,但一旦声明为抽象类(abstract),就不能用于实例化,即new xxx()是不允许的。

属性和初始化块不能用于抽象(abstract)。

抽象的只能是方法。一旦一个类中有abstract方法,则该类必须为抽象类。

如果一个类实现了某个接口,但没实现接口所提供的方法,则该类必须为抽象类。

由于static修饰的方法属于类,当一个方法用static修饰时,表明可以通过类直接调用而无须实例化,如果此时用abstract修饰,表明无方法体,这与static矛盾,因此static不能用于抽象方法。

final表明方法不能被重写,所以final不能和abstract同时修饰一个方法。

 

接口:

接口定义了某些类的共同行为规范。接口的目的是使规范和实现分离,降低软件模块之间的耦合性。

由于接口只是定义一组规范,因此接口里面不能有构造方法,初始化块。

接口里只能包含属性(即常量),方法(只能是抽象实例方法),内部类(或接口),枚举。

接口里成员默认是public ,如果想添加访问修饰符,也只能是public。

 

 

package lesson7;
interface Output
{
	// static final且public
	int MAX_SIZE = 1000;

	//public abstract 不能用static,因为与abstract矛盾
	void input();
	void output();

}

class Test
{
	public static void main(String[] args) 
	{
		//可以通过接口直接访问接口的变量,因为接口成员变量是public static final
		System.out.println(Output.MAX_SIZE);
		//错误。因为MAX_SIZE为final变量
		Output.MAX_SIZE=10;
	}
}

尽管接口不能显示继承任何类,但接口类型的引用变量可以直接赋值给Object引用变量。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值