class BB extends AA
时间: 2023-10-12 10:06:40 浏览: 37
class BB extends AA是一个Java中的类继承关系的声明。它表示BB类是AA类的子类,也可以称为派生类或子类。 这意味着BB类继承了AA类的属性和方法,并且可以在BB类中添加新的属性和方法,或者重写继承自父类的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [方法重写——JVM动态绑定机制和子类中this的简写](https://blog.csdn.net/wx1528159409/article/details/85237598)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
有下列程序,试指出该程序的错误之处。 class AA{ AA(int a){ System.out.println("a="+a); } } class BB extends AA{ BB(String s){ System.out.println("s = "+s); } } public class ConstructorDemo{ public static void main(String[] args){ var b = new BB("hello"); } }
该程序的错误在于子类 BB 没有显式地调用父类 AA 的构造方法,而父类 AA 又没有无参构造方法,因此编译器会自动添加一个无参构造方法,在运行时会报错。要解决这个问题,可以在子类 BB 的构造方法中使用 super 调用父类 AA 的构造方法。修正后的程序如下:
```
class AA {
AA(int a) {
System.out.println("a=" + a);
}
}
class BB extends AA {
BB(String s) {
super(0); // 调用父类 AA 的构造方法
System.out.println("s = " + s);
}
}
public class ConstructorDemo {
public static void main(String[] args) {
var b = new BB("hello");
}
}
```
1、下面程序运行结果为: abstract class AA{ abstract void callme(); void metoo(){ System.out.println(“Inside AA’s metoo().”) } } class BB extends AA{ void callme(){ System.out.println(“Inside BB's callme().”) } void metoo() { System.out.println(“Inside AA’s metoo().”) } } public class Test ( public static void main(String args[]){ AA aa = new BB(); aa.callme(). aa.metoo(). } }
这段程序是一个简单的抽象类和继承的示例。运行结果为:
Inside BB's callme().
Inside AA’s metoo().
首先,创建了一个 AA 类的引用 aa,并用 BB 类的实例进行了初始化。这是合法的,因为 BB 类是 AA 类的子类。接着调用了 aa 的 callme() 方法,由于 BB 类已经实现了 callme() 方法,所以会输出 "Inside BB's callme()."。接着调用了 aa 的 metoo() 方法,由于 BB 类重写了 metoo() 方法,所以实际上调用的是 BB 类的 metoo() 方法,输出 "Inside AA’s metoo()."。