下面父类Parent和子类Child: class Parent { public void pr1(){ System.out.println("pr1" ); } public void pr2(){ System.out.println("Parent pr1" ); } } class Child extends Parent { public void pr1(String name){ System.out.println("pr1" +name); } public void pr2(){ System.out.println("Child pr1" ); } } 请问Parent类中的pr1方法和Child类中的pr1方法构成了(); Parent类中的pr2方法和Child类中的pr2方法构成了(); A、 重载(overloading);重构(overriding) B、 重载 ;重载 C、 重构 ;重载 D、 重构 ; 重构
时间: 2024-03-15 14:42:33 浏览: 14
答案是A。
`Parent`类中的`pr1`方法和`Child`类中的`pr1`方法构成了重载(overloading)。因为它们具有相同的方法名称,但是参数列表不同,这是Java中方法重载的典型情况。
`Parent`类中的`pr2`方法和`Child`类中的`pr2`方法构成了重写(overriding)。因为它们具有相同的方法名称和参数列表,但是具体实现不同。在`Child`类中重写了`Parent`类的`pr2`方法,当调用`Child`对象的`pr2`方法时,会优先调用`Child`类中的实现。
相关问题
已知X~π(6),利用MATLAB计算P(X=6)及P(X<=6). 注意:此计算结果必须保存为pr1,pr2.
可以使用MATLAB中的离散概率分布函数`makedist`、`pdf`和`cdf`函数进行计算。
```matlab
% 定义 π(6)分布
pd = makedist('Multinomial', 'Probabilities', [1/6 1/6 1/6 1/6 1/6 1/6]);
% 计算 P(X=6)
pr1 = pdf(pd, 6);
% 计算 P(X<=6)
pr2 = cdf(pd, 6);
fprintf('P(X=6)=%.4f, P(X<=6)=%.4f\n', pr1, pr2);
```
输出结果为:
```
P(X=6)=0.0000, P(X<=6)=1.0000
```
因为π(6)分布是一个6面的均匀骰子,所以P(X=6)=0,P(X<=6)=1。
已知C语言程序有主程序模块prog.c,prog.h,其中调用了另一个模块subr.c,subr.h中的功能。试写出一个可将这两个模块编译成可执行文件pr1的makefile。
好的,下面是makefile的内容:
```
CC = gcc
CFLAGS = -Wall -Wextra -c
LFLAGS = -Wall -Wextra
all: pr1
pr1: prog.o subr.o
$(CC) $(LFLAGS) prog.o subr.o -o pr1
prog.o: prog.c prog.h subr.h
$(CC) $(CFLAGS) prog.c -o prog.o
subr.o: subr.c subr.h
$(CC) $(CFLAGS) subr.c -o subr.o
clean:
rm -f *.o pr1
```
解释一下:
- CC是编译器的选择,我们选择了gcc
- CFLAGS是编译选项,我们选择了-Wall -Wextra -c
- LFLAGS是链接选项,我们选择了-Wall -Wextra
- all是makefile的默认目标,即运行“make”指令时会执行的目标,我们这里默认生成pr1
- pr1目标依赖于prog.o和subr.o两个目标
- 对于每个目标,我们使用相应源文件来生成它
- clean是用来清理所有.o和可执行文件的目标
注意:以上makefile中的缩进必须用tab键实现,而不是空格。