Java学习笔记:面向对象与多态

1星 需积分: 44 12 下载量 188 浏览量 更新于2024-09-09 2 收藏 2.17MB PDF 举报
"小码哥 任小龙的Java学习笔记,主要涵盖了Java的基础知识,包括面向对象、for循环增强、可变参数以及类的结构、封装、权限控制、构造器重载、继承、覆盖方法、子类初始化、多态等核心概念。" 在Java编程中,面向对象是其核心特性之一。面向对象编程(OOP)允许我们将复杂的程序设计分解成一系列相互协作的对象。在Java中,类是对象的蓝图,它定义了对象的属性(成员变量)和行为(方法)。成员变量可以是类成员(使用`static`修饰)或实例成员。类成员对所有对象共享,而实例成员仅属于特定对象。 `for`循环增强是一种简化遍历数组或集合的方式。例如,对于数组`Num[]`,可以用`for (int var : Num) { ... }`这样的语法来依次输出数组中的元素,这被称为foreach循环或者增强for循环。 可变参数是Java 5引入的新特性,允许方法接受不定数量的参数。在方法声明中,使用`...`来表示可变参数列表,这样就可以传入任意数量的同类型参数。 在面向对象编程中,`static`关键字用于标记类级别的成员,这意味着它们不属于任何特定对象,而是直接关联于类本身。`static`方法只能访问其他`static`成员,而普通方法(非`static`)可以访问静态和非静态成员。`this`关键字代表当前对象的引用,常用于实例方法中访问实例成员,而在构造器中,`this`可以用来调用其他构造器。 继承是面向对象的另一个关键特性,它允许子类继承父类的属性和方法,以此实现代码复用和创建类的层次结构。在Java中,一个类可以只有一个直接父类,但可以有多个子类。覆盖方法(重写)是子类对父类方法的一种改进,通常使用`@Override`注解来标识。如果父类和子类有同名静态方法,则子类的方法会隐藏父类的方法,而不是覆盖。 子类初始化时,首先会执行父类的构造器,确保父类的状态正确初始化。`super`关键字用于在子类构造器中调用父类构造器,并且必须作为第一条语句。`static`与`this`、`super`不兼容,因为`static`属于类级别,而`this`和`super`属于对象级别。 多态是面向对象的另一大特性,它允许将子类对象赋值给父类引用,运行时调用的是实际子类的方法。这种机制使得我们能够编写通用代码,处理多种类型的对象,而无需知道它们的具体类型。多态主要应用于接口,可以减少因类型差异带来的复杂性。 在多态调用时,需要注意以下几点: 1. 如果父类没有某个方法,而子类有,编译会报错。 2. 父类有该方法,子类没有,则会调用父类的方法。 3. 父类和子类都有该方法,会调用子类的方法,这是覆盖的体现。 这些知识点构成了Java面向对象编程的基础,理解和掌握它们对于进行有效的Java开发至关重要。