【Java】abstract,final,static,private,protected,public的区别
【abstract】抽象的
1. abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法。抽象类不一定有抽象方法,但拥有抽象方法的类一定是抽象类;
2. 被abstract修饰的类不能直接实例化,需要通过子类实现,所以抽象类一定有子类;
3. 继承抽象类的子类必须要重写抽象类中被abstract修饰的抽象方法,如果不继承就必须要把自己变成抽象的子类。
【final】最终的
1. final可以修饰类,成员变量,成员方法,局部变量/形参。
2. final修饰的类不能被继承(即不能有子类);
3. final修饰的方法不能被重写;
4. final修饰的成员变量是常量,必须在定义时就必须给一个终值,并且不能改变,不能重新赋值;
5. final修饰的局部变量、形参只能接收赋值一次,一旦赋值成功,就不能改变,不能重新赋值。
【static】静态的
1. static 可以修饰成员变量,成员方法;被static修饰的会被当前类的所有对象共享;
2. static 修饰的成员变量和成员方法会被放在JVM的静态方法区,随着类的加载而加载,可以使用类名或引用调用;
3. static修饰的成员方法只能调用static修饰的成员变量,非静态的成员变量不能调用;
【private】私有的
1. private可以修饰成员变量和成员方法;
2. 被private修饰的成员变量和成员方法只能被当前类访问,其他类不能访问;
3. 被private修饰的成员方法不能被重写。
【protected】
1. protected 可以修饰成员变量和成员方法;
2. 被protected修饰的成员变量和成员方法可以被当前类和当前类的子类访问,其他类不能访问;
3. 被protected修饰的成员方法可以被子类重写
【public】公共的
1. public修饰的类,成员变量,成员方法都是公共的,可以被所有类直接访问
【Java】abstract,final,static,private,protected,public的区别的更多相关文章
- [Java] Protect, Private and Public的区别
Java中的private.protected.public和default的区别 (2014-03-21 22:29:14) 转载▼ 标签: java java修饰符 it (1)对于publi ...
- private,protected,public和default的区别
private,protected,public和default的区别 除了default以外,其他都是Java语言的关键字.default代表的是对类成员没有进行修饰的情况.它本身也代表了一种访问控 ...
- @private@protected@public@package
@private@protected@public@package 为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性 但是为了提供灵活性,苹果也让开发者显式设置范围(四选一) ...
- 转 Java中final、finally、finalize的区别与用法
Java中final.finally.finalize的区别与用法 1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构 ...
- Java中 final static super this instanceof 关键字用法
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参 ...
- java 关键字final static native详解
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...
- oc 中四种实例变量的范围类型@private@protected@public@package
To enforce the ability of an object to hide its data, the compiler limits the scope of instance vari ...
- iOS中四种实例变量的范围类型@private@protected@public@package
文档上记录是这样的 The Scope of Instance Variables Toenforce the ability of an object to hide its data, the c ...
- 对private protected public的详解:
#include <iostream> #include <stack> #include <queue> #include <exception> # ...
随机推荐
- 3 TFRecord样例程序实战
将图片数据写入Record文件 # 定义函数转化变量类型. def _int64_feature(value): return tf.train.Feature(int64_list=tf.train ...
- 封装一个MPermissionsActivity的思路和步骤
http://blog.csdn.net/longkehuawei/article/details/53202804 第一步:检测所有的权限是否都已授权 /** * 检测所有的权限是否都已授权 * * ...
- 页面引入(include)方式的研究及性能比较
1. 应用Html中的框架(iframe) 目前大多数门户网站都应用iframe来进行页面上广告的投放,就是将不同的广告分别应用iframe投放到主页面上,优点是效率高,互不影响,缺点是不符合网页标准 ...
- 【Leetcode】【Medium】Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- UIButton的titleLabel
UIButton的titleLabel @property(nonatomic, readonly, retain) UILabel *titleLabel Description - 描述A vie ...
- Python Json获取天气预报
#!/usr/bin/python # -*- coding: UTF-8 -*- import json import smtplib import urllib from email.mime.t ...
- 深入理解PHP传参原理(PHP5.2)
首先说下今天想到的一个问题.在编写php扩展的时候,似乎参数(即传给zend_parse_parameters的变量)是不需要free的.举例: PHP_FUNCTION(test) { char* ...
- 为什么说 Java 程序员必须掌握 Spring Boot ?
原作者https://www.cnblogs.com/ityouknow/p/9175980.html Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人 ...
- [原]零基础学习视频解码之安装ffmpeg
写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能.但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去.最近无意间领会了如何入门,现 ...
- hdu-2619 Love you Ten thousand years
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2619 题目大意: 求出小于n的数的个数,满足ki mod n,1≤i≤n是模n的完全剩余系 解题思路 ...