首页 > 代码库 > Java面向对象-抽象类

Java面向对象-抽象类

Java面向对象-抽象类

 

定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象;

注意点

1,包含一个抽象方法的类是抽象类;

2,抽象类和抽象方法都要用abstract关键字修饰;

3,抽象方法只需要声明而不需要实现;

4,抽象类必须被子类继承,(假如不是抽象类)必须重写抽象父类中的全部抽象方法;

5,抽象类不能被实例化;

我们先来定义一个抽象类:

 1 package com.java1234.chap03.sec11;
 2  
 3 /**
 4  * 定义一个抽象类People
 5  * @author user
 6  *
 7  */
 8 public abstract class People {
 9  
10     private String name;
11  
12     public String getName() {
13         return name;
14     }
15  
16     public void setName(String name) {
17         this.name = name;
18     }
19      
20     public void say(){
21         System.out.println("我的姓名是:"+this.getName());
22     }
23      
24     /**
25      * 定义一个抽象方法 职业 让子类去具体实现
26      */
27     public abstract void profession();
28      
29 }

抽象类,定义一个属性name 以及方法say() 再定义一个抽象方法 profession 具体实现让子类去实现;

 

我们搞一个测试类:

我么尝试下实例化下People类:

技术分享

我们会看到 编译出错,不能实例化People类;

 

我们定义一个Student类,以及一个Teacher类:

 1 package com.java1234.chap03.sec11;
 2  
 3 public class Student extends People{
 4  
 5     @Override
 6     public void profession() {
 7         System.out.println("职业是:学生");
 8     }
 9  
10 }
 1 package com.java1234.chap03.sec11;
 2  
 3 public class Teacher extends People{
 4  
 5     @Override
 6     public void profession() {
 7         System.out.println("职业是:老师");
 8     }
 9  
10 }

我们搞一个测试类:

 1 package com.java1234.chap03.sec11;
 2  
 3 public class Test {
 4  
 5     public static void main(String[] args) {
 6          
 7         Student student=new Student();
 8         student.profession();
 9          
10         Teacher teacher=new Teacher();
11         teacher.profession();
12          
13     }
14 }

运行输出:

职业是:学生

职业是:老师

Java面向对象-抽象类