java abstract

abstract

总结:一定注意重点注意

1. 抽象类不能被实例化

2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

3. 抽象类中的抽象方法只是声明,不能包含方法体。

4.注意 构造方法,类方法不能声明为抽象方法。

5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

概念:

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

或者说如果一个类只定义了一个为所有子类共享的一般形式,至于细节则交给
每一个子类去实现,这种类没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类,这样好像容易理解一点

例如:不同几何图形的面积计算公式是不同的,但是它们具有的特性是相同的,都具有长和宽这两个属性,也都具有面积计算的方法。那么可以定义一个抽象类,再比如说老板要去分配任务,员工都具有姓名和部门,但是每一个部门的员工所行驶的权利或者所做的事情是不相同的所以去做事的权利固定写在父类中显然是不合理的,这个时候就可以利用抽象类进行解决,具体的细节实现交给子类.

例如面积的计算
package javaTest;
    public abstract class Shape{
        public int width;    //几何图形的长
        public int height;    //几何图形的宽
        public Shape(int width,int height)
        {
            this.width=width;
            this.height=height;
        }
        public abstract double area();    //定义抽象方法,计算面积
    }
    可以看到以后几何图形三角形或者正方形继承的时候可以写自己的覆盖方法进行自己的细节处理

也就是说:抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。

抽象方法:
声明抽象方法会造成以下两个结果:

如果一个类包含抽象方法,那么该类必须是抽象类。
任何子类必须重写父类的抽象方法,或者声明自身为抽象类。

注意:继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。

java final https://blog.csdn.net/zcc1677689500/article/details/98475683
java static https://blog.csdn.net/zcc1677689500/article/details/98475281
java abstract https://blog.csdn.net/zcc1677689500/article/details/98476003

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值