面向对象通识17(abstract修饰符)

面向对象通识17(abstract修饰符)

abstract(抽象)

特性

该修饰符只能修饰方法和类

abstractfinal是互斥的

原因:

  • 对于类:前者修饰的类必须派生子类,后者修饰的类禁止派生子类
  • 对于方法:前者修饰的方法必须要被重写,后者修饰的方法禁止被重写

抽象类

特征

有得有失——

有得:抽象类可拥有抽象方法(普通类有的,抽象类都有)

有失:抽象类失去了创建对象的功能

抽象类的主要作用——派生子类(子类构造器一定要调用父类构造器一次,因此抽象类必须有构造器)

作用

  1. 定义变量
  2. 调用类方法和类变量
  3. 派生子类(主要目的)

抽象方法

只有方法签名,没有方法体(花括号{})的方法,{}的存在代表方法体的存在,单独存在代表空的方法体

再次强调,只有抽象类才能有抽象方法,普通类不能有抽象方法

所以,抽象方法必须要交由子类进行调用才能实现

抽象类派生子类

  • 要么子类重写父类中所有的抽象方法,要么子类也只能是抽象的

    此为“非抽象类不能调用抽象方法”这一规则的推论

举例:

public abstract class animal {
    public static void main(String[] args) {
        System.out.println("2333");
    }

    //抽象法方法
    public abstract void a1();

    public static void info(){
        System.out.println("23233");
    }
}
public class birds extends animal {
    @Override//父类的抽象方法必须重写
    public void a1() {
        System.out.println("43343");
    }
}
public class AnimalTest {
    public static void main(String[] args) {
        animal.info();
        animal s1=new birds();
        s1.a1();
    }
}
/*
 23233
 43343
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值