近两天看到的基础,温故而知新
1,abstract类和接口的区别:
abstract类:·可以有非抽象成员变量
·可以有非抽象成员方法
·子类必须实现父类中的所有方法,否则也必须定义为抽象类
接口:·成员方法默认修饰符为public abstract
·成员变量默认修饰符为public static final
区别:
·抽象类中可以有构造方法,接口没有
·抽象类中可以有非抽象方法,接口不可以
·抽象类中允许头普通成员变量,接口不可以
·抽象类中可以包含静态方法,接口不可以
·抽象类和接口都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以随意,但接口中的只能是public static final类型。
·一个类可以实现多个接口,但只能继承一个抽象类
2.面向对象的特征
封装:对象是面对对象的基本单位,将对象的属性和行为封装到一个模块,实现软件内部的“高内聚,低耦合”特征。防止程序相互依赖性带来的影响。即把对同一事物进行操作的方法和相关的方法放到同一个类中,把方法和他操作的数据放在同一个类中。
继承:写一个类时,可以在一个已完成的类的基础上实现,这个类可以将已完成类中的内容据为己有,并可以添加新的内容,或修改原来的方法使之更适合需求。继承提高了软件的可重用性和可扩展性。
多态:是指一个引用变量指向的具体类型或通过该引用变量发出的方法调用在运行时才确定。这样不用修改代码,就可以让引用变量绑定到不同类上实现,从而调用不同的方法。(父类或接口对应的引用对象指向子类或具体实现类在编译期间不确定,在运行期才确定)
抽象:将事物的共性之处写成一个类,只关注这些事物的相似之处。
3,==和equals的区别
==:用于比较两个变量的值是否相等,也就是比较对象所指向内存中所存的值是否相等。对于引用变量,如Object obj = new Object();obj是一个变量,new Object()是一个变量,变量obj的值是obj所对应的内存空间 的首地址。
equals:用于比较两个独立变量的内容值。如String a1 = new String("a");String a2 = new String("a");a1==a2,返回值 为false,a1 equals a2返回值则为 true.
4,基本数据类型
boolean,byte,short,char,int,float,double,long
5,string和stringBuffer的区别
相同之处:都可以用来储存和操作字符串。
不同之处:string提供了数值不可改变的字符串。覆盖了equals()和hashcode()方法。stringBuffer可以对字符串进行修改。
6,final,finally,finalize的区别
final:用来声明变量,方法和类。表明变量不可变,方法不可覆盖,类不能被继承。
finally:异常处理机制中的一个语句。表示总是执行。
finalize:是object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的该方法。
7,overload和override的区别(继承或实现)
overload:重载,方法名相同参数列表不同。
· 使用重载时只能通过不同的参数样式
·不能通过访问权限,返回类型,抛出的异常进行重载
override:重写,方法名和参数列表完全相同
·覆盖的方法标志,返回值,所抛出的异常必须与被覆盖的方法一致。