一.单态变量与多态变量
单态变量:一个变量的静态类型与动态类型都是同一类型,那么这个变量称之为单态变量。
多态变量:一个变量的静态类型与动态类型不是同一类型,那么这个变量称之为动态变量。
静态类型与动态类型
静态类型:一个变量的声明类型,称之为这个变量的静态类型。(变量的静态类型与静态变量是完全不同的两个概念。)
动态类型:一个变量存储的值的类型,称之为这个变量的动态类型。
例子:
假设B类是A类的子类,
A a = new A();//(1)
a = new B();//(2)
说明理解:
(1)中的变量a是单态变量,它的静态类型是A(声明类型),动态类型也是A(存储的值的类型)。
(2)中的变量a是多态变量,它的静态类型是A(声明类型),动态类型是B(存储的值的类型)。
分享到:
相关推荐
多态允许我们使用父类型的引用来操作子类型对象,这使得代码更加灵活且易于扩展。例如: ```java class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends Animal {...
21. **静态变量与实例变量**:静态变量属于类,而实例变量属于类的每个对象。静态变量由所有实例共享,实例变量每个实例独立。 22. **构造函数**:用于初始化新创建的对象,无返回类型,名称与类名相同。构造函数不...
抽象类和接口都用于实现多态,但抽象类可以有非抽象方法和实例变量,接口只能有抽象方法和常量。 子类创建时会先初始化父类,通过`super()`调用父类构造器实现。 接口可以继承接口,抽象类可以实现接口,但不能...
以上内容涵盖了Java面向对象编程的关键知识点,包括封装、继承、多态,以及类与对象、String的比较、this关键字、单态模式、对象数组和final关键字的使用。理解并熟练掌握这些概念,对于Java开发者来说至关重要,...
6.5.4 单态模式170 6.6 final修饰符171 6.7 abstract修饰符172 6.8 接口173 6.8.1 接口的定义及实现174 6.8.2 接口中的常量174 6.8.3 接口的多重实现174 6.9 本章练习175 第7章 7.1 面向对象的分析与设计简介180 ...
面向对象的主要特征包括封装、继承和多态,不包括单态。 8. **注释**:C++中的注释可以使用`/*...*/`或`//`,其中`/*...*/`用于多行注释,以`*/`结束。 9. **数组和指针**:`*(p+i)`可以用来访问数组`a`中下标为`i...
- **对象的多态性**:解释多态的概念及其在抽象类和接口中的体现。 - **instanceof关键字**:instanceof关键字的用途及其实现。 - **Object类**:Object类的作用及其重要方法。 ##### 17. 面向对象高级(05) - **...
但要特别注意,避免在Servlet中使用全局变量存储数据,因为这可能导致数据竞争和不一致性。 3. **Java多态** 多态是面向对象编程的一个关键特性,它允许使用父类型的引用操作子类型对象。在Java中,多态有两种主要...
C++支持这些特性,但不包括"单态",这是一个错误的选择。 9. **注释结束标记**:C++中的注释可以使用`/* ... */`或`//`,其中`/* ... */`类型的注释以`*/`结束。 10. **指针操作**:`int *p=a;`定义了一个指向`int...
- this关键字的用法:解决成员变量与局部变量同名问题。 - **static关键字** - static修饰符的作用:定义类级别的成员。 - static方法与非static方法的区别:static方法可以直接通过类名调用。 - **理解main方法*...