抽象方法和抽象类的区别

抽象类和抽象方法的区别

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

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

 

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

 

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

 

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

 

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

 

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

1

    abstract class Animal { //用abstract来定义一个Animal为抽象类

2

    }

3

    

4

    public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy"

 

2 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

 

3 抽象类不能被实例化。

 

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

1

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

2

      

3

    public void enjoy() {

4

    System.out.print("叫声"); //而一般的方法有必要实现某些功能

5

    }

 

例A:没抽象类的多态程序

01

    class Person {

02

        public void f() {

03

            System.out.println("父类");

04

        }

05

    }

06

      

07

    class Students extends Person {

08

        public void f() {

09

            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:抽象类的多态程序

01

    abstract class Person {

02

        public abstract void f();

03

    }

04

      

05

    class Students extends Person {

06

        public void f() {

07

            System.out.println("学生类");

08

        }

09

    }

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

    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值