java 复习
1. java的几个特点:
(1)与C++相比,语法简单;内存分配和回收不需要我们过多关注,C++可以多继承,java只能单继承。
(2)跨平台:在不同的操作系统中,JVM规范都是一样的,被jvm加载成各个操作系统所支持的,屏蔽了底层操作系统的差异。
2. 编译时多态和运行时多态:
(1)编译时多态。指函数的重载,实现的方式是根据函数的名字不同来调用的。
(2)运行时多态。
也叫动态绑定。是指执行期间(而非编译期间)判断所引用对象的实际类型,根据实际类型判断并调用对应的属性和方法。
例子:
abstract class Animal{
private String name;
Animal(String name){this.name = name;}
public void enjoy()
{
//子类对该方法不满意,重写
System.out.println("叫声");
}
}
待完成。。。
3. 抽象类和接口的区别:
(1)接口是对动作的抽象,抽象类是对根源的抽象。
例如:男人、女人,这两个类,他们的抽象类是人。人可以吃东西,狗可以吃东西。“吃东西”这个动作定义成接口。
(2)在高级语言中,一个类只能继承一个类(抽象类),却可以继承多个接口。
4.Java中有人分为值传递和址传递。引用传递也就是址传递。
比如下列的方法
public void add(int a) {
int b = a;
}
这个可以看作是值传递,a是基本数据类型,他把他的值传给了b
public void add(Object obj) {
Object objTest = obj;
}
这个可以看作是址传递,obj是引用数据类型,是把他栈中指向堆中的对象的地址值赋值给了objTest.
这时候就同时有两个引用指向了堆中的某个Object对象
其实这样看来,java应该只有值传递的。如果是基本数据类型,传递的就是实际的值.
如果是引用数据类型,传递的就是该引用的地址值.