java这题b也是对的吧,子类必须重载父类所有抽象方法
发布网友
发布时间:2022-05-22 06:51
我来回答
共5个回答
热心网友
时间:2024-03-23 23:51
B是错的,之前的回答都弄混淆了重载和重写(也叫覆盖)的概念,重载就是在一个类里 两个同名但不同参数的方法,重写就是子类里写了一个和父类里一模一样的方法。所以,子类继承父类,并实现父类的抽象方法,那是重写而非重载
热心网友
时间:2024-03-23 23:52
抽象类必须被继承,抽象方法必须被重写,抽象类不能被实例化,抽象方法只需声明,不须实现!
热心网友
时间:2024-03-23 23:52
子类不是抽象类,必须重写父类中的所有抽象方法!!不是重载
热心网友
时间:2024-03-23 23:53
重载和重写的概念弄混了 ,这里的B是错误的 ,子类必须重写(覆盖)所有的父类的所有抽象方法才是对的。
热心网友
时间:2024-03-23 23:53
图片看得好蛋疼
B是正确的,抽象类的非抽象子类必须实现重载父类中的所有抽象方法。因为抽象方法是非private的,那么就会被子类继承,如果子类不重写抽象方法,按照抽象类的定义,那么子类也只能是抽象类。
所以,抽象类的子类要么也是抽象类,要么重载了其父类的所有抽象方法
C是错误的,因为我们不能创建一个抽象类对象,但是可以使用抽象类创建一个具体子类对象。
假设P是抽象类,T是其具体子类,那么:P p = new P();是错误的,而 P p = new T();则是正确的。而二楼例子中使用的匿名内部类来创建一个对象,实际上
A a = new A{void prints() {System.out.println("A~~~~~~~~~~~~~~~~~");}};
这段代码表示了一个没有名字的抽象类A 的一个具体实现子类。内部类虽然让代码变得简洁,但是却破坏了程序的逻辑性,如果是一个java初学者还是少用的好。