java 抽象类需要注意的几点

一个抽象类要注意以下几点:
        (1)抽象类只能作为其他类的基类,它不能直接被实例化,而且对抽象类不能使
用new操作符。抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含
了对非抽象类的实例的引用。

       (2)抽象类允许包含抽象成员,但这不是必须的(可以允许一个抽象类中没有任何抽象成员);抽象类中可以有非抽象方法。

       (3)抽象类不能同时又是final的。如果试图将-一个final类作为其他类的基类,Java将提示“The class can be either abstract or final, not both"。理所当然,final 类不能同时又是抽象类,因为抽象总是希望被继承的。

        (4)如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员。

       (5)抽象类可以被抽象类所继承,结果仍是抽象类。

       (6)抽象类允许被声明。

例子:

public abstract class Person {  //建立一个抽象类Person
    public  abstract void SayHello(); //其中存在抽象方法SayHello
    public void about(){ //以及一个非抽象方法
        System.out.println("Abstract Demo");
    }
}
class Student extends Person{ //建立实体类Student 继承Person
    

    @Override
    public void SayHello() {  //必须覆盖抽象方法 SayHello
        System.out.println("SayHello");
    }
}


class Nurse extends Person{ //建立实体类Nurse 继承Person


    //没有覆盖抽象方法SayHello。所以这个类是错误的。
}

abstract class Pupil extends Person{ //建立抽象类Pupil 继承Person

    @Override
    public void SayHello() {  //可以覆盖抽象方法 SayHello
        System.out.println("SayHello");
    }

}

abstract class Worker extends Person{ //Worker 继承Person

   //抽象类继承抽象类,可以不覆盖方法 SayHello。 所以这个类是正确的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值