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

来源:互联网 发布:sql删除一个字段的数据 编辑:程序博客网 时间:2024/06/06 01:42

一个类中的方法如果是抽象的话,该类就必须定义为抽象类.
抽象类不一定有抽象方法.抽象类和抽象方法必须用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修饰的方法是没有方法体的,调用一个没有方法体的方法是没有                                           意义的,所以不能共享.   

0 0
原创粉丝点击