关于抽象类的几个简单理解


一个类中的方法如果是抽象的话,该类就必须定义为抽象类.
抽象类不一定有抽象方法.抽象类和抽象方法必须用abstract修饰.
抽象类的子类要么是抽象类要么重写抽象类中的所有方法
抽象类不能实例化 按照多态的方式使用
abstract class Animal { public abstract void eat(); }
abstract class Dog extends Animal { }
class Cat extends Animal { public void eat() { System.out.println("猫吃鱼"); } }

class AbstractDemo { public static void main(String[] args) {
//Animal a = new Animal(); //无法实例化
                    //Dog d = new Dog();  //无法实例化
                    //Cat c = new Cat();
                    //多态
Animal a = new Cat();
a.eat(); } }
抽象类的成员特点:
A.成员变量:可以是变量,也可以是常量
B.构造方法:有构造方法,但是不能实例化.
                        问题:构造方法有什么用?   用于子类访问父类时的初始化
C.成员方法:可以有抽象方法,也可以有非抽象方法.
                        抽象方法:强制要求子类做某些事情.
                    非抽象方法:用于给子类直接使用,提高了代码的复用性
两个问题:
1.    一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
                                可以.为了不让别人创建对象
2.abstract不能和哪些关键字合用?
          final:final修饰的方法不能被重写,而abstract系iushi的方法要求必须被重写
         private:同上
         static:static修饰的方法可以通过类名调用,而abstract修饰的方法是没有方法体的,调用一个没有方法体的方法是没有                                                      意义的,所以不能共享.     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值