java抽象类接口举例代码(java接口和抽象类区别面试题)

什么是Java抽象类和接口?

Java中的抽象类和接口是两种非常重要的概念,它们都用于完成封装、实现、继承等基础操作。抽象类是一个不能被实例化的类,主要是为了在这个类的子类中实现自己的方法和属性。另一方面,接口通常包含一个方法的声明,但不包含方法定义,由实现接口的类实现方法。

Java抽象类的实例代码

一个抽象类不能被实例化,但是可以通过它的子类实例化。下面的代码示例中,Animal类是一个抽象类,包含了一个抽象方法sound()。在这个抽象方法中,我们将动物音声的输出委托给子类来处理。

```
abstract class Animal{
public abstract void sound();
}
class Dog extends Animal{
public void sound(){
System.out.println("汪汪");
}
}
class Cat extends Animal{
public void sound(){
System.out.println("喵喵");
}
}
public class App {
public static void main(String[] args) {
Animal dog = new Dog();
Animal cat = new Cat();
dog.sound();
cat.sound();
}
}
```

在上面的代码中,我们定义了一个抽象类Animal,它只有一个抽象方法sound(),即动物的音声。然后我们定义了两个子类Dog和Cat,它们都重写了父类的方法sound()。在主函数中,我们通过实例化这些子类,调用这个方法,成功输出了这些动物的声音。

java抽象类接口举例代码(java接口和抽象类区别面试题)

Java接口的实例代码

与抽象类相比,接口更加严格。在接口中不允许有任何属性,只允许有方法的声明。接口中的方法也有其特殊之处:它们都是公共、抽象的方法,不允许有任何体。在Java代码中,接口是通过implement关键字来实现的。下面是一个简单的Java接口示例代码。

```
interface Shape{
double calculatePerimeter();
double calculateArea();
}
class Triangle implements Shape{
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3){
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double calculatePerimeter(){
return side1 + side2 + side3;
}
public double calculateArea(){
double p = calculatePerimeter() / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
}
public class App {
public static void main(String[] args) {
Shape triangle = new Triangle(3, 4, 5);
System.out.println("Triangle perimeter: " + triangle.calculatePerimeter());
System.out.println("Triangle area: " + triangle.calculateArea());
}
}
```

在这个示例中,我们定义了一个只包含两个方法的接口Shape。我们使用Triangle类实现了这个接口,并实现了calculatePerimeter()和calculateArea()方法。在主函数中,我们通过实例化一个新的Triangle对象,成功计算出了它的周长和面积。

总结

Java中的抽象类和接口是两个非常有用的概念。抽象类可以作为其他类的基类,并实现一些重要的方法。接口则更加严格,只包含方法的声明而没有方法的实现。在实际的开发中,我们需要根据不同的需求来选择抽象类和接口。要理解它们之间的区别以及在何时使用它们是十分重要的。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javailp.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午8:16
下一篇 2023年4月24日 下午8:16

猜你喜欢