java抽象类理解总结

  1. 抽象类的类名必须要有abstract修饰
    类名的访问修饰符只能为pubulic
  2. 抽象类可以不包括任何方法(包括抽象方法)和属性
// 定义一个抽象类可以不包括抽象类可以不包括任何方法(包括抽象方法)和属性
public abstract class Abs {
}
  1. 抽象类的属性和方法
    属性:抽象类的属性和普通类的属性一致,private和final修饰的属性不能被继承
public abstract class Abs {
    private int b = 1;
    int a = 2;
    public static final String bl = "ABSDDASDW";
    protected int c = 3;
}

public class AbsTest extends Abs {
    public static void main(String[] args) {
        AbsTest absTest = new AbsTest();
        System.out.println(absTest.a); // 2
        System.out.println(absTest.c); // 3
         System.out.println(absTest.bl); // ABSDDASDW
    }
}

方法:抽象方法需要abstract关键字修饰,抽象方法没有方法体,抽象方法不允许有关键字private修饰。抽象类可以有普通方法和私有方法以及构造方法。

public abstract class Abs {
    private int b = 1;
    int a = 2;
    public static final String bl = "ABSDDASDW";
    protected int c = 3;
    public abstract void a();
    protected abstract void b();
    abstract void  c();
    private abstract void pri(); // 报错 Illegal combination of modifiers: 'abstract' and 'private'
    public void d(){
        System.out.println("执行d方法");
    }
    private void e(){
        System.out.println("执行了e方法");
    }
    protected void  f(){
        System.out.println("执行了f方法");
    }
    public Abs(){
        System.out.println("Abs构造方法");
    }
    protected Abs(int a){
        this.a = a;
        System.out.println("Abs带参数" + a + "的构造方法");
    }
}

public class AbsTest extends Abs {
    @Override
    public void a() {
    }

    @Override
    protected void b() {
    }

    @Override
    void c() {

    }
    public AbsTest(int e){
        super(e);
    }
    public AbsTest(){

    }
    public static void main(String[] args) {
        AbsTest absTest = new AbsTest(); // Abs构造方法
        System.out.println(absTest.a);
        System.out.println(absTest.c);
        absTest.d(); // 执行了d方法
        absTest.f(); // 执行了f方法
        new AbsTest(1); // Abs带参数1的构造方法
    }
}
  1. 抽象类不能被实例化
 Abs abs = new Abs(); // 'Abs' is abstract; cannot be instantiated
  1. 抽象类不一定要有抽象方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值