package lianxii;
import java.util.Date;
public class Person2 {
public String name;
public int age;
private Date birthDate;
public String getInfo() {
return "name:" + name + "\nage:" + age;
}
}
//类Person2
package lianxii;
public class Student2 extends Person2 {
private String school = "BeiJing";
private String className = "errr";
public String getSchool() {
return school;
}
@Override
public String getInfo() {
return super.getInfo() + "\nschool:" + school + "\nclassName:" + className;
}
public static void main(String[] args) {
Student2 y = new Student2();
y.school = "NanJing11";
y.className = "ChuYi";
System.out.println(y.getInfo() + "\n");
Person2 t = new Person2();
t.age = 23;
t.name = "zhong";
System.out.println(t.getInfo() + "\n");
//多态的情况下
Person2 p = new Student2();
System.out.println(p.getInfo() + "\n");
}
}
//类Student2
//一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的方法和属性
package lianxii;
public class Test {
public String method(Person2 r) {//形参
return r.getInfo();
}
public static void main(String[] args) {
Test u = new Test();
Student2 p = new Student2();
u.method(p);//实参
System.out.println(u.method(p));
}
}
//测试类Test
//方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法
分享到:
相关推荐
编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数。通过这种方式,可以为同一个功能提供多个接口,以适应不同类型的参数。 动态绑定(晚期绑定或后绑定)和静态绑定(早期绑定或前绑定)是多态...
面向对象编程基础主要涉及到三个核心概念:封装、继承和多态。这些都是Java等面向对象编程语言中的重要特性。 1. **封装**: 封装是面向对象编程的基础,它将对象的属性(数据)和行为(方法)绑定在一起,对外...
1. 数组名可以作为实参赋值给指针类型的形参。 2. 数组的存储方式为行优先存储。 3. 数组指针的语法形式为:类型名 *数组名[下标表达式]。 四、继承和派生 1. 派生类可以访问基类的保护成员。 2. 基类没有默认构造...
17. 实参与形参的关系:在函数调用中,实参和形参不是同一对象,但它们之间有对应关系,形参接收实参的值或引用。 18. 继承的特性:C++的继承性允许派生类继承基类的特性,并且可以增加新的特性或重定义基类的特性...
值传递是将实参的副本传给形参,形参的改变不会影响实参。引用传递则是将实参的引用传给形参,形参的改变会直接影响实参。 2. this指针:在C++中,每个成员函数都有一个隐含的this指针,它指向调用该成员函数的对象...
C++是一种广泛使用的面向对象的编程语言,它包含了许多特性,如封装、继承、多态等。在编写C++程序时,通常会经历以下几个步骤:编辑(创建源代码文件)、编译(将源代码转化为机器语言)、连接(将编译后的对象文件...
13. 实参与形参的关系:当使用地址作为实参传给形参时,实参和形参是同一对象的引用,而非备份。 14. 继承的特性:C++的继承性允许派生类继承基类的部分特性,并且可以增加新的特性或重定义基类的特性。 15. 类中...
“尚硅谷JAVA基础笔记”涵盖了Java语言的基础知识,包括语言概述、基本语法、面向对象概念、封装、继承和多态,以及一些关键概念如形参与实参、属性与局部变量、构造器、this关键字、包和MVC设计模式的使用。...
调用时,实参从左到右初始化形参,如果缺少实参,会使用默认形参值。 11. 运行时行为:题目涉及类对象的构造和析构顺序,以及成员变量的初始化和传递参数的方式。 总结起来,这些题目涵盖了面向对象编程的基础知识...
传值调用会创建形参的副本,传引用调用则不复制对象,而是让形参直接引用实参。指针同样可以用于传递对象的地址,提供间接访问。 C++中的类和对象是面向对象编程的基础。类定义了对象的结构和行为,而对象则是类的...
3. **面向对象编程的特性**:面向对象编程的三大特性包括封装、继承和多态。选项C中的“类比性”不是面向对象的主要特性,正确答案是A(继承性)、B(多态性)和D(封装性)。 4. **数据库设计**:数据字典是在需求...
数组名可以作为实参赋值给指针类型的形参,但数组指针的语法形式通常写作`类型名 *数组名[常量表达式]`。 8. 派生类可以访问通过私有继承的基类的保护成员,但不能直接访问私有成员。基类的虚函数可以被继承,而析...
13. **赋值传递**和**引用传递**:赋值传递会复制实参的值给形参,而引用传递则是形参直接引用实参,两者都是参数传递方式,但引用传递不会复制,修改形参也会影响实参。 14. **#include预处理指令**:尖括号`< >`...
18. **面向对象语言特性**:面向对象语言具有封装、继承和多态的特性。 19. **算法控制结构**:算法通常由顺序、选择(分支)、循环这三种基本结构组成。 20. **Word页码设置**:在Word中,可以对文档的第一页不...
- 形参多态:函数参数可以是父类类型,允许接收子类对象。 - 返回值多态:函数返回值类型为父类,可返回子类对象。 - 引用类型转换: - 向上转型:自动转换,例如父类类型 变量名 = 子类对象; - 向下转型:...
值传递会复制实参的值给形参,而引用传递则让形参成为实参的别名,不复制值,修改形参会直接影响实参。 2. 成员函数的this指针:当成员函数被调用时,隐含地有一个指向调用它的对象的指针,称为`this`指针。 3. ...
- 引用传递将实参的地址赋给形参,对形参的操作直接影响实参。 5. **指针与引用的区别**: - 引用无需显式解引用即可访问对象,而指针需要通过解引用操作。 - 引用在定义时必须初始化,并且不能改变引用的对象;...
- **值传递**:函数接收的是实参的副本,对形参的操作不会影响实参。 - **指针传递**:函数接收的是实参地址的副本,通过指针可以在函数内部修改实参。 - **引用传递**:函数接收的是实参的引用,通过引用可以在函数...
C++是一门强大的面向对象编程语言,主要特点包括封装、继承和多态。这些特性使得C++在软件开发中具有很高的灵活性和可扩展性。 1. **封装**: 封装是面向对象编程的核心概念之一,它通过将数据(属性)和操作数据的...