抽象类和接口

本文深入探讨了面向对象编程中的抽象类与接口的概念,解析了它们的定义、使用场景及区别,强调了抽象类和接口在软件设计中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、抽象类

1、需求:定义一个图形类,该类应该包含求周长和面积的方法。

2、分析:图形包括很多种,如长方形,正方形,圆形等,各种图形均继承与图形这个父类,但是不同图形求周长、求面积的方法也不尽相同,换句话说

      “方法的声明相同,但是方法的具体实现各异”。此时只能抽取方法的声明,并不能抽取方法的实现。


3、抽象类、抽象方法定义:

  抽象方法定义: public abstract 返回值类型  方法名(参数);

  抽象类定义: public abstract 类名{...}

/**
 * 图形定义
 * @author Administrator
 *
 */
public abstract class Graph {
    
    /**
     *     图形名称
     */
    private String graphName;
    
    /**
     *     获取图形周长
     * @return
     */
    public abstract double getPerimeter();
    
    /**
     * 获取图形面积
     * @return
     */
    public abstract double getArea();

    /**
     * 获取图形名称
     * @return
     */
    public String getGraphName() {
        return graphName;
    }

    
    
}

 

  注:1)包含抽象方法的类也必须是抽象的。2)抽象类中可以包含抽象方法(getGraphName())。3)不能使用抽象类直接生产对象,必须由子类继承抽象类后覆盖其抽象方法后才能生成对象。

    4)抽象类的意义:体现面向对象编程的编程思想。

 

二、接口

  1、定义格式

    

public interface Graph {
    
    /**
     *     定义常量
     */
    public static final double constant1 = 3.14;
    
    
    /**
     * 获取周长
     * @return
     */
    public abstract double getPerimeter();
    /**
     * 获取面积
     * @return
     */
    public abstract double getArea();
}

注:1)接口中的方法均为公共抽象方法。2)接口中无法定义普通的成员变量。3)接口中常量必须使用 public static final修饰。

  4)接口不可以创建对象。5)子类覆盖接口的所有方法后才能够创建对象,否则子类只是一个抽象类。

  6)接口之间可以存在多继承的关系。

 

  2、接口的意义:

    1)接口最重要的意义是作为多继承的替代方案:多继承会出现方法调用可能存在歧义的问题,但是多实现却没有。

    2)面向接口编程使程序解耦,便于后期开发和维护。

 

 

三、抽象类和接口的区别:

  1、抽象类是现实事物的抽象,只不过抽象的过程中某些方法的行为无法具像。

  2、接口更多是表示功能的集合,实现接口的子类只是应该具有接口的功能。

 

转载于:https://www.cnblogs.com/LaowangNext/p/10167153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值