Java编程的基础知识概览

发表时间: 2024-05-23 22:41

1.java中,为什么不允许从静态方法中访问非静态变量?

java中不能从静态上下文访问非静态数据是因为非静态变量是跟具体的对象实例关联的,而静态的却没有和任何实例关联。

2.在java中,什么时候使用重载,什么时候使用重新?

如果你看到一个类的不同实现有着不同的方式来做同一件事,那么就应该用重写(overriding),而重载(overloading)是用不同的输入做同一件事。在java中,重载的方法签名不同,而重写不是。

3.什么情况下会更倾向于使用接口类而不是接口?

接口和抽象类都遵循“面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以使用不断变化的需求。下面有几个点可以帮助你回答这个问题:

在java中,你只能继承一个类,但可以实现多个接口。所以一旦你继承了一个类,你就失去了继承其他类的机会了。

接口通常被用来便是附属描述或行为如:Runable、Clonable、Serializable等等,因此当你使用抽象类来便是行为时,你的类就不能同时是Runnable和Clonable,因为在java中你不能继承两个类,但当你使用接口时,你的类就可以同时拥有多个不同的行为。

在一些对时间要求比较高的应用中,倾向于使用抽象类,它会比接口稍快一点。

如果希望把一系列行为都规范在类继承层次内,并且可以更好滴在同一个地方进行编码,那么抽象类是一个好的选择。有时,抽象类和接口可以一起使用,接口中定义函数,而在冲向类中定义默认的实现。