qfedu多态 Object,final
### qfedu多态 Object,final #### 一、继承与多态 1. **继承的语法**:在Java中,实现继承的关键字是`extends`。子类通过继承父类可以获得父类的所有非私有的成员变量和方法,具体语法为: ```java public class 子类名 extends 父类名 { // 子类中的代码 } ``` 2. **重写与重载**: - **重写(Override)**:当子类中需要覆盖父类的方法时,可以通过重写实现。重写时必须保证方法名、参数列表以及返回类型与父类方法完全一致,并且子类方法的访问权限不得低于父类方法。 ```java public class 子类名 extends 父类名 { @Override public 返回类型 方法名(参数列表) { // 方法体 } } ``` - **重载(Overload)**:在一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。 ```java public class 类名 { public void 方法名(参数列表1) { // 方法体 } public void 方法名(参数列表2) { // 方法体 } } ``` 3. **继承的好处**:继承的主要优点包括代码重用、提高代码的可扩展性和维护性等。 4. **super关键字**:`super`关键字主要用于引用当前对象的直接父类中的成员。它通常用于访问父类的构造器或方法。在构造函数中,使用`super`调用父类的构造函数必须作为第一条语句出现。 ```java public class 子类名 extends 父类名 { public 子类名() { super(); // 调用父类的无参构造器 } } ``` 5. **所有类的超类**:在Java中,所有的类都直接或间接地继承自`java.lang.Object`类。`Object`类是所有类的基类。 6. **打印一个对象**:当使用`System.out.println()`打印一个对象时,默认情况下会调用该对象的`toString()`方法。可以通过`alt+insert`快捷键快速生成并重写该方法,以便更直观地展示对象的信息。 ```java @Override public String toString() { return "类名{" + "属性1=值1, " + "属性2=值2" + "}"; } ``` #### 二、Java的单继承特性 Java中采用单继承模型,即一个类只能有一个直接父类。这种设计简化了类层次结构,减少了类之间的依赖关系,但同时也限制了多个父类特性的组合能力。例如: ```java public class A {} public class B extends A {} // 正确 public class C extends A {} // 正确 public class D extends B, C {} // 错误,Java不支持多继承 ``` #### 三、数组越界异常 **数组越界异常**(`ArrayIndexOutOfBoundsException`)通常是由于试图访问数组中不存在的元素所导致的。例如,如果数组长度为`n`,则有效的索引范围是`0`到`(n-1)`。尝试访问`n`或更大的索引会导致数组越界异常。 ```java int[] array = new int[5]; array[5] = 10; // 数组越界异常 ``` #### 四、default与protected的区别 - **default**:当成员变量或方法使用`default`修饰符时,表示其可见性仅限于同一包内的其他类。 - **protected**:`protected`修饰符表示成员可以在同一包内或不同包的子类中访问。 #### 五、`equals`方法与`==` - **equals**:用于比较两个对象的内容是否相等。 - **`==`**:用于比较两个对象的引用是否指向同一个内存位置。对于基本数据类型,`==`比较的是值是否相等。 #### 六、`final`关键字的使用 1. **`final`修饰类**:当一个类被声明为`final`时,该类不能被继承。 ```java final class MyClass { // 类体 } ``` 2. **`final`修饰成员变量**:`final`修饰的成员变量一旦被初始化后就不能再改变,通常用于定义常量。 ```java final int MY_CONSTANT = 10; ``` 3. **`final`修饰方法**:`final`修饰的方法不能被子类重写。 ```java public final void myMethod() { // 方法体 } ``` 4. **`final`修饰参数**:`final`修饰的方法参数不能在方法体内重新赋值。 ```java public void myMethod(final int value) { value = 10; // 错误:不允许对final参数重新赋值 } ``` 5. **定义常量**:在Java中,通常使用`public static final`修饰符定义常量。这些常量应遵循一定的命名规则,如全大写字母。 ```java public class Constants { public static final int MAX_VALUE = 100; } ``` 本文详细介绍了Java中关于继承、多态、`Object`类、`final`关键字等核心概念的相关知识点。通过学习这些内容,可以帮助开发者更好地理解和应用面向对象编程的基本原则和技术。






















剩余11页未读,继续阅读


- 粉丝: 242
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于Sinric Pro的洗衣警报系统.zip
- 招标师考试项目管理真题及答案.doc
- 基于云计算的IDC建设-图文.doc
- 项目管理员简历范文.doc
- 网络营销和管理专业讲座专业讲座.pptx
- 网络管理员工作总结.doc
- 谈高中《算法与程序设计》教学中的引导变通获奖科研报告论文.docx
- 第1章移动电子商务-图文.ppt
- 国家开放大学电大《消费者行为学》网络核心课网考机考2套题库及答案四.docx
- 网络安全审计系统(数据库审计)解决方案.doc
- 图像处理在印刷电路板检测中的应用.doc
- (源码)基于Arduino的水位监测预警系统.zip
- 最新数据挖掘分类专业知识讲座.ppt
- 软件工程师工作总结模板.doc
- 山东会计继续教育网络听课出题汇总山财.doc
- 电子政务下广东省计算机审计评估体系研究.doc


