Java中的抽象类和接口

想要了解接口我们要先知道抽象类。那么什么是抽象类呢?

问题描述:生活中我们有很多的对象是无法具体描述的,比如说:我们可以说四边形有四条边。或者具体点说就是矩形两边对称且相等,正方形四边对称且相等。但是对于普通的图形而言就很难具体描述了。转换成Java语言就是说:对于一个很具体的类我们可以很方便的定义它的各种属性和方法,但是对于有一些类我们却难以了解它的方法时如何实现的。这时我们就可以用到抽象类。

抽象类的语法格式如下:

1 public abstract class 类名{
2   abstract 返回值类型 方法名(参数列表);//定义抽象方法      
3 }

定义抽象方法的关键字是:abstract。

使用abstract定义的类称为抽象类,而使用abstract定义的方法称为抽象方法。

抽象方法没有方法体,本身也没有任何意义,因此抽象类是不能够被实例化的。

当它被其子类继承时,子类必须实现其中的抽象所有方法。

只要类中有一个抽象放方法,此类就必须定义为抽象类。

 

了解了抽象类,我们继续思考下面的问题,来看先下面一段代码:

public abstract class shape 
{
    //定义一个图形抽象类
    public abstract void toString();//toString抽象方法
    public abstract void paint();//画图的抽象方法
}

public class triangle extends shape
{
    public void toString()
    {
        system.out.println("toString");
    }

    public void paint()
    {
        system.out.println("paint");
    }
}

这样看起来好像没有什么问题。如果我们有些类中不希望它有paint方法怎么办?把paint方法放到另一个类中?但是其它的类还要使用这个方法。而Java的语法规定了,类是不能多继承的,怎么办?这时我们就可以考虑使用接口了。

接口是抽象类的延伸,解决了Java中不能多继承的缺点。我们可以把paint方法封装到一个接口中,然后让需要用的图形类的子类实现这个接口。而Java中一个类是可以实现多个接口的,我们可以把不同的方法封装在接口中,交给类来使用。

接口的关键字是interface。其定义如下:

public interface 接口名  extends 类名  implements 接口,....{
  //定义常量
  public static final 数据类型 常量名=值;
  //定义抽象方法
  public abstract 返回值类型 方法名 (参数列表);        
}

要注意的是:1.接口不能被实例化   2.接口的访问修饰符只能是public  3.接口会默认提供public abstract static final关键字

ps:小白上路,欢迎指正。

转载于:https://www.cnblogs.com/cbs-writing/p/7068847.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值