Java抽象类

1.抽象类的基本概念

a.很多具有相同特征的对象可以抽象为一个类;很多具有相同特征和行为的类可以抽象为一个抽象类

b.使用abstract关键字声明的类为抽象类

 

2.抽象类的规则

a.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类

b.非抽象类继承抽象类必须实现所有抽象类的方法

c.抽象类可以有方法实现和属性

d.抽象类不能被实例化

e.抽象类不能被声明为final  区别:抽象类可以被子类继承 但是最终类不能被子类继承

f.抽象类可以有构造方法    会有显示但是没有实例化对象 原因是子类在实例化的时候调用了父类的构造方法 (调用构造方法不一定是实例化对象)

例子:

 

 1 public class AbstractTest {
 2     public static void main(String[] args) {
 3     Goddess g = new Goddess();
 4     g.setName("彤彤");
 5     g.say();
 6     System.out.println("--------------------------");
 7     UglyWomen u = new UglyWomen();
 8     u.setName("小包子");
 9     u.say();
10 }
11 }
12 
13 //女人
14 //abstract 表示声明一个抽象类
15 abstract class Women{
16     private String name;
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     
24     public abstract void say();   //抽象类的方法不是具体的     (只有声明实现)
25     public abstract void method();
26 }
27 
28 class Goddess extends Women{    //一个类继承抽象类 必须全部实现抽象类中的方法
29     //实现父类的抽象方法 没有 abstract 修饰
30     public void say(){
31     System.out.println("我是女神,我是"+getName());    
32     }
33     public void method(){}        //空实现
34 }
35 
36 class UglyWomen extends Women{
37     //实现父类的抽象方法 没有 abstract 修饰
38     public void say(){
39     System.out.println("我是丑女,我是"+getName());    
40     }
41     public void method(){}
42 }

 

posted @ 2015-02-16 21:14  0xcafedaddy  阅读(132)  评论(0编辑  收藏  举报