【Java总结】final关键字,抽象类,接口,内部类

final

  1. final修饰类,表示这个 类不能被继承
  2. final修饰方法,表示这个方法不能被重写
  3. final修饰常量(常量大写),表示常量不能被修改内容
  4. static final修饰的常量,表示全局常量

抽象类

  • 使用abstract修饰的类,这个类是抽象类
  • 使用abstract修饰的方法,为抽象方法,此方法只有生命没有实现
  • 含有抽象方法的类必须是抽象类
  • 抽象类不能实例化,抽象类的子类必须重写父类的抽象方法
  • 不能使用abstract修饰属性,私有方法,构造器,静态方法,final方法
/*我为抽象类*/
abstract calss A {
    abstract void m();
}

接口(interface)

  • 接口就是一个特殊的抽象类,没有属性,只有方法
  • 接口就是被类实现的,实现类 必须重写接口中的所有方法
  • 接口是Java中实现多重继承的方式
  • 接口都是public修饰的,方法也是public
/*声明一个接口*/
public interface Runner {
    public void run();
}

/*实现接口*/
public class implements Runner {
    public void run() {
        System.out.printf("我会跑!");
    }
}

内部类

Java中允许一个类中定义另一个类,前者成为外部类,后者称为内部类

  • 内部类可以声明为final
  • 内部类可以修饰为private或者protected
  • 内部类可以为static,此时就不能使用外层类的非static的成员变量
public class Test {

    public static void main(String[] args) {
            A a = new A();
            A.B b = a.new B();
            b.m(3);
    }

}

class A {
    private int s = 1;

    public class B {
        private int s = 2;

        public void m(int s) {
            System.out.println(s);//3 局部变量
            System.out.println(this.s);//2内部类的对象
            System.out.println(A.this.s);//1外层类的对象
        }
    }
}

匿名内部类

一般swing里面使用的较多

下面就是内部类的一个使用

button.addListener(
    new OnClickListener() {
        //实现方法
    }
);
时间: 2025-01-02 17:39:02

【Java总结】final关键字,抽象类,接口,内部类的相关文章

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有

聊聊Java的final关键字

Java的final关键字在日常工作中经常会用到,比如定义常量的时候.如果是C++程序员出身的话,可能会类比C++语言中的define或者const关键字,但其实它们在语义上差距还是挺大的. 在Java中,final可以用来修饰类.方法和变量(包括成员变量和局部变量).我们先来简单介绍一下final关键字的这几个用法. 一.final修饰类 常见的一个例子就是String类.当用final修饰一个类时,表明这个类不能被继承,并且final类中的所有成员方法都会被隐式地指定为final方法,但成员

关于Java中final关键字的用法总结

用于数据 永不改变的编译时常量,必须是基本类型,static final常量定义时必须赋值 一个运行时被初始化却又不希望被改变的值 空白final,确保使用前必须被初始化,但有更大的灵活性 final参数,用于对象引用,对象不可改变,用于基本类型,值不可以改变 用于方法 防止方法的行为被改变,不可覆盖 private方法默认为final的 曾经使用final方法可以提高效率,现已不提倡 用于类 表示该类不可以被继承 final类方法默认指定为final的 关于Java中final关键字的用法总结

Java之final关键字解析

Java之final关键字解析 final关键字可以修饰不同的内容,这些内容仅包括一个变量,一个方法或者一个类,以下是final修饰这些内容的作用: final变量:表示该变量为常量,即只能初始化一次 final方法:表示该方法不能被重写 final类:表示该类不可以被继承 final变量 当一个变量被final关键字修饰时,意味着它的值不可以被修改了,也就是说,这个变量表示一个常量.这也意味着final变量必须被初始化.如果一个final变量表示的是一个对象的引用,那么该变量就不能重新表示另一

8 面向对象之抽象类+接口+内部类

1 final关键字 用法:  1)使用final修饰变量,该变量就变成常量,在运行的过程中无法重新赋值. 2)使用final修饰方法,该方法无法在子类中重写 3)使用final修饰的类,不能被继承(派生其他子类) JDK中常见的final修饰的类: java.lang.Math   java.lang.String 2 抽象类和抽象方法 抽象方法:使用abstract修饰的方法.特征: 没有方法体. 抽象类:使用abstract修饰的类. 特点: 1)抽象类中可以包含抽象方法.包含抽象方法的类

JAVA 虚函数 抽象函数 抽象类 接口

1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为.如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数 PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了. 2. Java抽象函数(纯虚函数) 抽象函数或者说是纯虚函数的存在是为了定义接口. C++中纯虚函数形式为:virtual void print(

黑马程序员--java基础之多态,抽象类,接口,匿名内部类

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 4.4 子类的实例化过程 子类中所有的构造函数默认都会访问父类中空参数的构造函数. 因为每一个构造函数的第一行都有一条默认的语句super();. 子类会具备父类中的数据,所以要先明确父类是如何对这些数据初始化的. 为什么子类实例化的时候要访问父类中的构造函数呢? 那是因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前,要先看父类是如何对自己的内容进行初始化的. P.S.

Java之final关键字

1.final类 final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的.在设计类时若不需要有子类,类的实现细节不允许改变,并且确信不会再被扩展,那么就设计为final类. 2.final方法 如果类的某个方法不允许子类覆盖,则可以把该方法声明为final方法.使用final方法的原因有二: 第一.把方法锁定,防止任何继承类修改它的意义和实现. 第二.高效.编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率. 3.final变量(常量) final

java 对 final 关键字 深度理解

基础理解 : 1.修饰类 当用final去修饰一个类的时候,表示这个类不能被继承.处于安全,在JDK中,被设计为final类的有String.System等,这些类不能被继承 .注意:被修饰的类的成员可以是final修饰,可可以不是 . 2.修饰方法 : 方法不能被子类重写.常用在类设计时不希望被子类重写而修饰. 3.修饰方法参数 : 被修饰 的参数变量,不能在方法体内再次被赋值.这个好像是站在调用者的角度考虑的哈,就好像有个大佬拿了把菜刀给我,叫我去看人 ,大佬说,你一定要用这把菜刀去砍,不要

关于java中final关键字与线程安全性

在Java5中,final关键字是非常重要而事实上却经常被忽视其作为同步的作用.本质上讲,final能够做出如下保证:当你创建一个对象时,使用final关键字能够使得另一个线程不会访问到处于"部分创建"的对象,否则是会可能发生的.这是 因为,当用作对象的一个属性时,final有着如下的语义: 当构造函数结束时,final类型的值是被保证其他线程访问该对象时,它们的值是可见的 为什么是必须的 使用final是所谓的安全发布(safe publication)的一种方式,这里,发布(pub