0
点赞
收藏
分享

微信扫一扫

java 抽象封装继承多态

Java 抽象封装继承多态

Java是一种面向对象的编程语言,其中抽象、封装、继承和多态是其核心概念。这些概念是Java语言的基石,也是开发Java应用程序的基本要素。本文将详细介绍这些概念,并通过代码示例来说明它们的用法和作用。

抽象

抽象是指将现实世界中的事物抽象成程序中的类或接口。Java中的抽象通过关键字abstract来实现。抽象类是一种不能被实例化的类,只能被继承。抽象类可以包含抽象方法,抽象方法是一种没有实现的方法,它只有方法签名,没有方法体。抽象方法必须在子类中被实现。

// 抽象类
abstract class Animal {
   // 抽象方法
   public abstract void sound();
}

// 子类实现抽象方法
class Cat extends Animal {
   public void sound() {
      System.out.println("喵喵喵");
   }
}

class Dog extends Animal {
   public void sound() {
      System.out.println("汪汪汪");
   }
}

public class Main {
   public static void main(String[] args) {
      Cat cat = new Cat();
      cat.sound();
      Dog dog = new Dog();
      dog.sound();
   }
}

在上面的代码示例中,Animal是一个抽象类,它包含了一个抽象方法soundCatDogAnimal的子类,它们实现了sound方法。在Main类中,我们创建了CatDog的实例,并调用它们的sound方法。

封装

封装是将数据和操作数据的方法封装在一个类中,只暴露必要的接口给外部访问。通过封装,我们可以隐藏类的内部实现细节,提高代码的可维护性和重用性。在Java中,封装通过访问修饰符来实现,常用的访问修饰符有privateprotectedpublic

class Person {
   private String name;
   private int age;

   public void setName(String name) {
      this.name = name;
   }

   public String getName() {
      return name;
   }

   public void setAge(int age) {
      this.age = age;
   }

   public int getAge() {
      return age;
   }
}

public class Main {
   public static void main(String[] args) {
      Person person = new Person();
      person.setName("John");
      person.setAge(25);
      System.out.println("Name: " + person.getName());
      System.out.println("Age: " + person.getAge());
   }
}

在上面的代码示例中,Person类封装了nameage两个私有属性,并提供了公共的访问方法setNamegetNamesetAgegetAge来操作这些属性。在Main类中,我们创建了一个Person对象,并通过访问方法来设置和获取其属性。

继承

继承是一种创建新类的机制,通过继承,一个类可以继承另一个类的属性和方法。被继承的类称为父类或超类,继承这个类的类称为子类或派生类。子类可以继承父类的非私有属性和方法,并且可以重写父类的方法。

class Shape {
   protected double area;

   public void calculateArea() {
      System.out.println("Calculating area...");
   }

   public void displayArea() {
      System.out.println("Area: " + area);
   }
}

class Rectangle extends Shape {
   private double length;
   private double width;

   public Rectangle(double length, double width) {
      this.length = length;
      this.width = width;
   }

   public void calculateArea() {
      area = length * width;
   }
}

public class Main {
   public static void main(String[] args) {
      Rectangle rectangle = new Rectangle(5, 3);
      rectangle.calculateArea();
      rectangle.displayArea();
   }
}

在上面的代码示例中,Shape是一个基类,Rectangle是一个派生类。Shape类包含了一个

举报

相关推荐

0 条评论