1.面对对象的主要特征是什么?
封装,继承,多态
2.封装是如何实现的?
利用抽象数据类型将数据和基于数据的操作绑定在一起,数据被保存再抽象数据内部,只有通过被授权的操作方法才能够访问数据,通过访问控制符来实现授权
3.对象之间如何相互作用,作用的条件是什么?
通过发送消息相互作用
条件:
1,引用必须引用了特定的对象
2,对象必须定义了相应的属性和方法
3,被访问的属性和方法必须具有可访问的权限
4.protected修饰符有何特点?
当类前修饰符为 public时,protected修饰的方法和属性可以被包中的类及其子类访问,当类前无修饰符的时候,protected修饰的方法和属性只能被包中的类访问
5.Object类都有哪些方法?
Object clone()
boolean equals(Object obj)
void finalize()
Class getClass()
int hashCode()
String toString()
void notify()
void wait()
6.重载的方法之间一般有什么关系?
其方法名称相同,参数不同
7.子类覆盖父类方法需要什么条件?子类中定义的与父类同名的方法一定是覆盖吗?
条件:
1.同名方法,参数和返回类型相同
2.子类的访问修饰符权限应大于或等于父类
3.同名的 static方法和非 static方法不能相互覆盖
4.方法前有 final修饰符,此方法不能在子类中进行覆盖
5.抽象类中如果存在抽象方法,则具体子类必须对抽象方法进行覆盖
子类中定义的与父类同名的方法不一定是覆盖,也可能相当于重载,当参数不同时,不会覆盖父类的方法
8.封装,继承与多态在面向对象程序设计中的用途是什么?
封装:将内部属性与外界分隔开,通过公有方法访问和修改内部属性,有利于保持系统的稳定性
继承:对已经实现的功能和代码进行复用,缩短开发时长
多态:其中重载对于类似的功能提供统一的接口,有利于对功能进行复用以及扩充,覆盖使得同样的消息对于不同的类的对象有不同的结果
1.Java的访问控制修饰符有哪些?各有什么访问权限?
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
2.什么是重载?有什么作用?请举例说明。
重载,从简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法。在Java中同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。这种情况下,该方法就被称为重载,这个过程称为方法重载
示例:
public class OverloadDemo {
//1. test()方法第一次重载,没有参数
void test() {
System.out.println("No parameters");
}
//2. test()方法第二次重载,一个整型参数
void test(int a) {
System.out.println("a: " + a);
}
//3. test()方法第三次重载,两个整型参数
void test(int a, int b) {
System.out.println("a and b: " + a + " " + b);
}
//4. test()方法第四次重载,一个双精度型参数
double test(double a) {
System.out.println("double a: " + a);
return a * a;//返回a*a的值
}
}
3.什么是覆盖?有什么作用?
覆盖:子类对父类的同名方法(方法名称相同,参数相同,返回类型相同)重新进行定义
作用:对从父类继承过来的方法进行重写