java 抽象类

Posted gaoyang666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 抽象类相关的知识,希望对你有一定的参考价值。

 1 class Demo1_Abstract 
 2     public static void main(String[] args) 
 3         //Animal a = new Animal();            //错误: Animal是抽象的; 无法实例化
 4         Animal a = new Cat();                //父类引用指向子类对象
 5         a.eat();
 6     
 7 
 8 /*
 9 * B:抽象类特点
10     * a:抽象类和抽象方法必须用abstract关键字修饰
11         * abstract class 类名 
12         * public abstract void eat();
13     * b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
14     * c:抽象类不能实例化那么,抽象类如何实例化呢?
15         * 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。
16     * d:抽象类的子类
17         * 要么是抽象类
18         * 要么重写抽象类中的所有抽象方法
19 */
20 abstract class Animal                         //抽象类
21     public abstract void eat();                //抽象方法
22 
23     public Animal() 
24         System.out.println("父类空参构造");
25     
26 
27 class Cat extends Animal 
28     public Cat() 
29         super();
30     
31     public void eat() 
32         System.out.println("猫吃鱼");
33     
34 

1. 一个抽象类 如果 没有抽象方法 ,可以 被定义为抽象类。这样做的意义就是 不让其他类创建本类对象,交给子类完成。

2. abstract 不能和哪些关键字 共存

  1. static         abstract 修饰的方法没有方法体,但是 static 修饰的方法 可以直接用 类名.方法 调用,而调用抽象方法是不行的

  2. final      abstract 修饰的方法要在子类中强制重写,但是 final 不能修改

  3. private  private 子类中不能访问

 

以上是关于java 抽象类的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象-抽象类

关于java抽象方法

Java抽象类/抽象方法

java——抽象类

Java抽象类

java抽象类注意问题