你精通Java语言吗?复习以下内容,让你自信的说:是的
- Java面向对象的三大特征:继承、封装、多态。
- 继承就是子类继承父类的特征和行为。
Java 不支持多继承,但支持多重继承。
子类拥有父类非private的属性,方法。
子类可以拥有自己的属性和方法
子类可以用自己的方式实现父类的方法 - extends、implements、super、this、Override、Overload的理解
- 多态是同一个行为具有多个不同表现形式或形态的能力
多态存在的三个必要条件:继承、重写、父类引用子类对象当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
-
抽象类和接口区别
抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
一个类只能继承一个抽象类,而一个类却可以实现多个接口 -
封装:一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 -
Java数据结构:
Enumeration:此功能之后被 Iterator 替代了,主要函数是nextElement( )
Iterator:主要函数hasNext() 、next()、 remove()
枚举enum:经常配合EnumSet和EnumMap使用
位集合BitSet:实现了一个按需增长的位向量。
向量Vector:和传统数组非常相似,但是Vector的大小能根据需要动态的变化。跟List很相似,当时有又不同
栈Stack:后进先出(LIFO)的数据结构
字典Dictionary:是一个抽象类,用来存储键/值对,作用和Map类相似。 别只会用MAP
哈希表:Hashtable现在集成到了集合框架中。它和HashMap类很相似
属性:Properties 继承于 Hashtable -
真正了解一下Java集合框架有多丰富,看到哪个类都要知道做什么用的,怎么用
-
泛型包扣泛型方法和泛型类
泛型方法:你可以写一个泛型方法,调用时可以接收不同的参数。public <E> ArrayList<E> getList(E[] inputs) { return new ArrayList<E>(); }
泛型类:
public class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } }