Java中面向对象(继承、抽象)的使用

Java中面向对象编程的核心是类和对象,其中类是一种抽象数据类型,用于描述对象的属性和方法。面向对象编程具有诸多优势,例如代码复用性、可扩展性和可维护性等。本文将介绍Java中面向对象编程中的继承和抽象使用。

一、继承

继承是面向对象编程中的一个重要概念,它允许开发者在已有的类的基础上创建一个新的类,新类继承原来类的属性和方法。Java中的继承通过关键字“extends”来实现。

父类:定义一个基类,包含一些属性和方法。

子类:继承基类的属性和方法,并可以重写或增加新的属性和方法。

例如,我们创建一个Animal类作为父类,创建一个Dog类作为子类:

public class Animal {  
    protected String name;  
    protected int age;  
    public Animal(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
    public void eat() {  
        System.out.println(name + " is eating");  
    }  
}
public class Dog extends Animal {
    public Dog(String name, int age) {
        super(name, age);
    }
    public void bark() {
        System.out.println(name + " is barking");
    }
}

在上面的例子中,Dog类继承了Animal类的属性和方法。Dog类可以使用Animal类中的eat()方法,也可以新增一个bark()方法。通过继承,我们可以减少代码重复,提高代码的可维护性和可读性。

二、抽象

抽象是面向对象编程中的另一个重要概念,它允许开发者定义一个接口,其中包含一些抽象方法,但不需要提供实现。Java中的抽象通过关键字“abstract”来实现。

抽象类:包含一些抽象方法的类。抽象类不能被实例化,只能作为其他类的父类使用。

接口:定义一组抽象方法的集合。接口不能包含实现,只能包含方法的签名。

例如,我们创建一个几何形状的抽象类和接口:

抽象类:

abstract class GeometricShape {  
    protected double area;  
    protected double perimeter;  
    public GeometricShape(double area, double perimeter) {  
        this.area = area;  
        this.perimeter = perimeter;  
    }  
    public abstract double getArea();  
    public abstract double getPerimeter();  
    public abstract void setArea(double area);  
    public abstract void setPerimeter(double perimeter);  
}

接口:

interface GeometricShapeInterface {  
    public double getArea();  
    public double getPerimeter();  
    public void setArea(double area);  
    public void setPerimeter(double perimeter);  
}

在上面的例子中,GeometricShape类是一个抽象类,它包含了一些抽象方法和一个构造函数。这个类不能被实例化,只能作为其他类的父类使用。GeometricShapeInterface是一个接口,它定义了一组抽象方法的签名。这个接口不能包含实现,只能被其他类实现并提供对应的方法实现。通过抽象,我们可以让代码更加灵活和可扩展,同时避免代码重复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值