javaSE学习:第十六章、抽象类、抽象方法

1.抽象类

1、把所有的三角形抽象为三角形类, 把所有的圆形抽象为圆形类,把所有的矩形抽象为矩形类, 把所有的三角形/圆形/矩形等所有平面图形抽象为平面图形类。

2、在平面图形类, 可以进行对平面图形求面积/求周长等操作, 但是不同的图形有不同的求法, 在平面图形类中, 求面积/求周长的操作没法具体实现.
就像所有的动物都会动, 不同的动物动的方式不同,动物类有这个操作,也没法具体实现。

3、当一个类的某个操作没法具体实现时,这个操作可以定义为抽象方法。

4、抽象方法使用abstract修饰的方法,只有方法的声明部分,没有方法体。

测试抽象类的特点:

  1. 只要使用abtract修饰的类就是抽象类。
  2. 含有抽象方法的类必须定义 为抽象类,但是,抽象类中不一定含有抽象方法。
  3. 有时,对现有的类进一步抽象形成更高层级的类(更抽象的类),如食物类,动物类, 它们是没法实例化,这种情况下,可以定义为抽象类。
  4. 抽象类是一种引用数据类型, 可以定义变量, 但是抽象类不能实例化对象。
  5. 抽象类定义引用可以赋值子类对象。
  6. 抽象类肯定含有构造方法, 子类创建对象时调用子类构造方法,子类构造方法体执行前会先执行父类的构造方法。
  7. abstract与final不能同时使用。

1、抽象类,用来表示一个抽象概念.
2、是一种只能定义类型,而不能产生对象的类,所以定义了抽象类则必须有子类的出现。
3、抽象类的好处在于能够明确地定义子类需要覆写的方法
4、抽象类需要使用abstract声明.
5、抽象类里可以实现抽象方法,该方法特征在于:只有声明,并没有方法体(所以子类必须全部覆写,并且子类不能为抽象类)

抽象类缺点: 由于Java的单继承,每个类只能从一个抽象类继承.没有接口灵活

当父类的方法不确定时,可以将该方法设计为抽象方法。
抽象方法就是没有实现的方法,即没有方法体。
当一个类中有抽象方法时,必须将该类定义为抽象类。
一般来说,抽象类会被继承,由其子类来实现抽象方法。

package com.hsf.extends_.abstract_;

public abstract class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public abstract void eat();
}

2、使用场景:

抽象类价值更多的在于设计,是设计中设计好之后,让子类继承并实现抽象类。

3、细节:

1、抽象类不可以被实例化(new)。
2、抽象类不一定要包含抽象方法。
3、有抽象方法一定是抽象类。
4、abstract只能修饰类和方法,不能修饰属性和其它。
5、抽象类可以有任意成员(本质还是类)。
6、抽象方法不能有主体。
7、如果一个类继承了抽象类,则它必须实现抽象类中的抽象方法或者它自己也声明为抽象类。
8、抽象方法不能使用private、final、static来修饰,因为他们都是和重写无关的(有了他们就无法重写了)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值