您的位置:首页 > 编程语言 > Java开发

Java中得抽象-----abstract

2017-05-11 14:57 239 查看

Java中抽象类和抽象方法的区别

抽象方法:在类中没有方法体的方法,就是抽象方法。


抽象类:含有抽象方法的类就叫抽象类。

抽象类中的抽象方法必须被实现!

如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!

抽象类中的普通方法,可以不必实现。

1 用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 :

1
abstract

class
Animal {
//用abstract来定义一个Animal为抽象类
2
}
3
4
public

abstract
void
enjoy();
//用abstract来定义一个抽象方法"enjoy"
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

抽象类不能被实例化。

抽象方法只需声明,而不需实现某些功能。如:

1
public

abstract
void
enjoy();
//这个抽象方法不需要实现功能
2
3
public

void
enjoy() {
4
System.out.print(
"叫声"
);
//而一般的方法有必要实现某些功能
5
}
例A:没抽象类的多态程序

1
class

Person {
2
    
public

void
f() {
3
        
System.out.println(
"父类"
);
4
    
}
5
}
6
7
class

Students
extends
Person {
8
    
public

void
f() {
9
        
System.out.println(
"学生类"
);
10
    
}
11
}
12
13
class

Teacher
extends
Person {
14
    
public

void
f() {
15
        
System.out.println(
"教师类"
);
16
    
}
17
}
18
19
public

class
Test3 {
20
    
public

static
void
main(String[] args) {
21
        
Person s =
new
Students();
22
        
Person t =
new
Teacher();
23
        
s.f();
24
        
t.f();
25
    
}
26
}
例B:抽象类的多态程序

查看源代码打印帮助

1
abstract

class
Person {
2
    
public

abstract
void
f();
3
}
4
5
class

Students
extends
Person {
6
    
public

void
f() {
7
        
System.out.println(
"学生类"
);
8
    
}
9
}
10
11
class

Teacher
extends
Person {
12
    
public

void
f() {
13
        
System.out.println(
"教师类"
);
14
    
}
15
}
16
17
public

class
Test3 {
18
    
public

static
void
main(String[] args) {
19
        
Person s =
new
Students();
20
        
Person t =
new
Teacher();
21
        
s.f();
22
        
t.f();
23
    
}
24
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: