1. 程式人生 > 其它 >13-Java面向物件-抽象類與介面

13-Java面向物件-抽象類與介面

finall關鍵字:


→final宣告的類不能被繼承,類似太監


final宣告的類不能被重寫:


使用final宣告的變數變成常量,常量不可以被修改:



JAVA抽象類:



抽象類不能直接被例項化:


abstract class Abs{
    private int age;
    public void tell(){
        
    }
    //抽象方法
    public abstract void say();
    public abstract void print();
    public
void setAge(int age){ this.age = age; } public int getAge(){ return age; } } class AbsDemo extends Abs{ public void say(){ System.out.println(getAge()); } } public class AbsDemo01{ public static void main(String[] args){ // Abs a = new Abs(); AbsDemo a = new
AbsDemo(); a.setAge(20); a.say(); a.print(); } }


介面的實現也必須通過子類,使用關鍵字implements:

package com.jikexueyuan.fin;

interface Inter{
    public static final int AGE = 100;
    public abstract void tell();
}

class A implements Inter{
    public void tell(){
        
    }
}

public class InterDemo01 { public static void main(String[] args){ //Inter i = new Inter(); //不能直接而是要通過子類implements來使用 A a = new A(); a.tell(); System.out.println(Inter.AGE); } }

介面也是可以多實現:

package com.jikexueyuan.fin;

interface Inter1{
    public static final int AGE = 100;
    public abstract void tell();
}

interface Inter2{
    public abstract void say();
}

class A implements Inter1,Inter2{
    public void tell(){
        
    }
    public void say(){
        
    }
}

public class InterDemo01 {
    public static void main(String[] args){
        //Inter i = new Inter();
        //不能直接而是要通過子類implements來使用
        A a = new A();
        a.tell();
        System.out.println(Inter.AGE);
        a.say();
    }
}

一個子類可以同時繼承抽象類和實現介面:

package com.jikexueyuan.fin;

interface Inter1{
    public static final int AGE = 100;
    public abstract void tell();
}

interface Inter2{
    public abstract void say();
}

class Abs1{
    public abstract void print();
}

class A extends Abs1 implements Inter1,Inter2{
    public void tell(){
        
    }
    public void say(){
        
    }
    public void print(){
        
    }
}

public class InterDemo01 {
    public static void main(String[] args){
        //Inter i = new Inter();
        //不能直接而是要通過子類implements來使用
        A a = new A();
        a.tell();
        System.out.println(Inter.AGE);
        a.say();
        a.print();
    }
}

一個介面不能繼承一個抽象類,但是可以通過extends關鍵字同時繼承多個介面,實現介面的多繼承: