抽象类与最终类

11.1、抽象类

11.1.1、抽象类概念

用abstract关键字修饰的类,就叫抽象类。

11.1.2、抽象方法概念

用abstract关键字修饰的方法,就叫抽象方法

11.1.3、抽象类的特点

1、抽象类可以没有抽象方法

public abstract class TestAbstractClass {
    
}

2、抽象类可以有普通方法

public abstract class TestAbstractClass {
    
    public int f() {
        return 0;
    }

}

3、定义了抽象方法的类,该类必须是抽象类

下面是错误代码,编译不通过。\color{red}{The} \color{red}{type} \color{red}{NormalClass} \color{red}{must} \color{red}{be} \color{red}{an} \color{red}{abstract} \color{red}{class} \color{red}{to} \color{red}{define} \color{red}{abstract} \color{red}{methods}

public class NormalClass {  //普通类不能声明抽象方法

    public abstract int f() ;
}

4、抽象类可以被继承,不能被实现。必须重写抽象方法

也就是不能使用implements关键字,而是使用extends关键字。

public abstract class TestAbstractClass {
        
    public abstract int f();
    
    public static void test() {
        return;
    }
}

public class NormalClass extends TestAbstractClass{

    @Override
    public int f() {
        // TODO Auto-generated method stub
        return 0;
    }
    
}

5、抽象类不能被实例化

11.1.4、抽象方法的特点

1、抽象方法只能声明,不能有方法体

2、声明了抽象方法的类,该类必须是抽象类

11.2、最终类

11.2.1、最终类的概念

用final关键字修饰的类,就叫最终类。

11.2.2、最终方法的概念

用final关键字修饰的方法,就叫最终方法。

11.2.3、最终类的特点

1、最终类可以没有最终方法

public  class TestFinalClass {
    
}

2、最终类可以有普通方法

public  class TestFinalClass {
    
    public final int f() {
        return 0;
    }
    
    public int b() {
        return 0;
    }
}

3、最终类不可以被继承,也不能被实现

也就是不能使用implements和extends关键字。

4、最终类可以被实例化

11.2.4、最终方法的特点

1、最终方法不能被重写

2、声明了最终方法的类,该类可以是最终类也可以是非最终类

11.2.5、常量的概念

用final修饰的变量,就叫常量。

11.2.6、常量的特点

1、常量一旦初始化,就不能再改变值

2、final可以修饰局部变量和成员变量

public class testClass {
    
    public  static  int a;
    
    public final static int b=2;  
    
    public final int c=22;
    
    public static void main(String[] args) {
        System.out.println(a); //0
    }
    
}

3、final修饰的成员变量必须初始化

4、final修饰的成员变量可以不进行初始化,要使用就必须初始化。

public class testClass {
    
    public   int bb() {
        final int b;
//      System.out.println(b);  //要想使用变量b,就必须初始化
        return 2;
    }
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。