如何无法将抽象类的所有方法实现给另一个继承IT的方法 我是Java中的新人,我不明白我如何不实现a抽象A类的所有方法。 公共

问题描述 投票:0回答:4

必须在类层次结构中的某个地方实现抽象方法。

在您的样本中,您必须在B或C中实现它。

themple templet并在其中投掷一个无支撑的exception:
java abstract-class abstract
4个回答
2
投票
public boolean method1(String _str){ throw new UnsupportedOperationException("message..."); }

给出了许多答案,其中大多数确实是正确的。但是,我可以预见,这个问题更多地是关于基本知识而不是代码问题。 首先,您需要理解这一点:


2
投票

从超级类别中介绍您的代码“紧密结合”,因此毫无疑问需要使用哪种杂项方法,或者您最终会遇到一个大混乱!


2
投票

从抽象超级类继承的子混凝土类必须实现所有抽象方法!否则,它必须是一个抽象类。

    如果您需要默认行为,则需要通过接口上的asbtract类。
  • 表示您必须提前计划!好吧,这并不意味着您不能有更轻松的课程,例如,您的代码并不能从诸如继承等机制中提供那么多的内容。

    您可以使用接口和 /或组合物提供相同的结果。如果您需要比您想象的要更改设计,请将其设置为接口。但是,您可能有抽象类,可以提供一些默认行为,如我之前所说的...
  • 吸附类可以具有具体方法,而接口不能!

    您需要了解的另一件事是,您只能从一堂课上继承,但是您可以在您的界面上实现尽可能多的接口!这显然是对我的一条途径...许多程序员将Java称为一种糟糕的编程语言,但是许多程序员需要了解Java与继承无关!因此,我的建议是停止使用基于Asbratct/Concrete类的继承作为义务!
  • 最终利用简单的技术为您的工作提供动力;例如,了解依赖注入和组成!

  • 示例下方仅是基于Asbarts类实现继承的正确方法。 我希望它可以帮助您了解基础知识...玩得开心!

基于Asbarts类的代码示例:

public abstract class AShape { public abstract double calculateArea(); public abstract double calculatePerimeter(); } public class Circle extends AShape { private double radius; Circle(double radius){ this.radius = radius; } @Override public double calculateArea() { return Math.PI * Math.pow(this.radius, 2); } @Override public double calculatePerimeter() { return Math.PI * (this.radius * 2); } //you can add more concrete methods here if you need } public class Rectangle extends AShape { private double side; Rectangle(double side){ this.side = side; } @Override public double calculatePerimeter() { return 4*this.side; } @Override public double calculateArea() { return Math.pow(this.side, this.side); } }

//主班

public class Main { public static void main(String[] args) { Rectangle box = new Rectangle(2); System.out.printf("Box area is: %.2f\n", box.calculateArea()); System.out.printf("Box perimeter is: %.2f\n", box.calculatePerimeter()); Circle disc = new Circle(2); System.out.printf("Disc area is: %.2f\n", disc.calculateArea()); System.out.printf("Disc perimeter is: %.2f\n",disc.calculatePerimeter()); } }

使用抽象关键字时,您需要了解一些要点

当一个类包含一个或多个抽象方法类时,也应声明抽象

当使用抽象类的过程中,您无法创建抽象类的对象,因为它未完全定义

任何抽象类的子类都必须在超级类中实现所有抽象方法,或者是摘要

1
投票
您无法创建抽象构造函数或抽象静态方法

  • 抽象类可以从子类继承吗?对于ex:我在这个具体的班级教师中有这种方法callteacher(),我的抽象类可以继承为抽象方法吗?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.