0基础学java_接口和instanceof关键字

抽象类

包含一个抽象方法的类就叫作抽象类。只声明而未实现的方法叫做抽象方法,抽象方法必须使用abstract关键字声明。

定义规则

  1. 包含一个抽象方法的类必须是抽象类
  2. 抽象类和抽象方法都要使用abstract关键字声明
  3. 抽象方法只需要声明而不需要实现
  4. 抽象类必须被子类继承,子类(不是抽象类)必须覆写抽象类中的全部抽象方法

格式

abstract class 抽象类名称{

      属性;

       访问权限 返回值类型 方法名称(参数){

          return 返回值;

}

      访问权限 abstract返回值类型 方法名称(参数){

         //在抽象方法中没有方法体

}

举例:

 1 package com.xiaotaotao.code;
 2 
 3 abstract class A{
 4     public static final String FLAG = "CHINA";//全局常量
 5     private String name = "肥猫";//定义一个普通的属性
 6     public void setName(String name){
 7         this.name = name;
 8     }
 9     public String getName(){
10         return this.name;
11     }
12     public abstract void print();//定义抽象方法
13 }
14 class B extends  A{//继承抽象类,因为B是普通类,所以必须覆写全部的抽象方法
15     public void print(){
16         System.out.println("FLAG = " + FLAG);
17         System.out.println("姓名 = " + super.getName());
18     }
19 }
20 public class AbstractDemo01 {
21     public static void main(String args[]){
22         B b = new B();
23         b.print();
24     }
25 }
26 
27 举例:
28 
29 package com.xiaotaotao.code;
30 
31 
32 
33 abstract class A{
34 
35     public A(){
36 
37     System.out.println("抽象类A中的构造方法");
38 
39     }
40 
41 }
42 
43 class B extends  A{//继承抽象类,因为B是普通类,所以必须覆写全部的抽象方法
44 
45     public B(){
46 
47         super();//也可以通过super明确指定构造方法
48 
49         System.out.println("子类B中的构造方法" );
50 
51     }
52 
53 }
54 
55 public class AbstractDemo01 {
56 
57     public static void main(String args[]){
58 
59         B b = new B();
60 
61     }
62 
63 }

 

举例:

 1 package com.xiaotaotao.code;
 2 
 3 
 4 
 5 abstract class Person01{
 6 
 7     private String name;
 8 
 9     private int age;
10 
11     public Person01(String name , int age){//构造方法
12 
13         this.name = name;
14 
15         this.age = age;
16 
17     }
18 
19     public  void setName(String name){//void 方法有返回值
20 
21         this.name = name;
22 
23     }
24 
25     public void setAge(int age){
26 
27         this.age = age;
28 
29     }
30 
31     public String getName(){
32 
33         return name;
34 
35     }
36 
37     public int getAge(){
38 
39         return age;
40 
41     }
42 
43     public abstract String getInfo();//定义抽象方法
44 
45 }
46 
47 class Student01 extends Person01{
48 
49     private String school;
50 
51     public Student01(String name , int age , String school){
52 
53         super(name , age);
54 
55         this.school = school;
56 
57     }
58 
59     public void setSchool(String school){
60 
61         this.school = school;
62 
63     }
64 
65     public String getSchool(){
66 
67         return school;
68 
69     }
70 
71     public String getInfo(){
72 
73         return "姓名 :" + super.getName() + " 年龄 :" + super.getAge() + " 学校 : " + this.getSchool();
74 
75     }
76 
77 
78 
79 }
80 
81 public class AbstractDemo02 {
82 
83     public static void main(String args[]){
84 
85         Student01 s = new Student01("肥猫" , 28 , "浙江大学");
86 
87         System.out.println(s.getInfo());
88 
89     }
90 
91 }
92  

猜你喜欢

转载自www.cnblogs.com/feimaoyuzhubaobao/p/9834085.html