final是属于修饰类
在类里面添加final不能被继承
修饰类
flnal class 类名 {
}
举例:
final class a {
}
在方法里添加final不能被重写
修饰方法
修饰符 final 返回值类型 方法名(参数列表){
//方法体
}
举例:
public final String b(int a){
a = 1;
}
在变量里添加final不能被重新赋值
修饰变量
举例:
final int a;
a = 10;
a = 15;//报错,不可重新赋值
final int b = 10;
b = 15;//报错,不可重新赋值
不同权限的访问能力
public protected default(空的) private 在同类中的访问能力是可以的
public protected default(空的)在同一包中是可以
public protected 在不同包子类是可以
public 在不同包中的无关类是可以
成员内部类
定义格式:
class A{
class B{
}
}
创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
演示:
(定义类)
public class Person {
private boolean live = true;
class Heart {
public void jump() {
// 直接访问外部类成员
if (live) {
System.out.println("心脏在跳动");
} else {
System.out.println("心脏不跳了");
}
}
}
public boolean isLive() {
return live;
}
public void setLive(boolean live) {
this.live = live;
}
}
(测试类)
public class InnerDemo {
public static void main(String[] args) {
// 创建外部类对象
Person p = new Person();
// 创建内部类对象
Heart heart = p.new Heart();
// 调用内部类方法
heart.jump();
// 调用外部类方法
p.setLive(false);
// 调用内部类方法
heart.jump();
}
}
输出结果:
心脏在跳动
心脏不跳了
匿名内部类
格式:
new 父类名或者接口名(){
//方法重名
@Override
public void method(){
//执行语句
}
};
举例:
(定义接口)
public abstract class a{
public abstract void fly();
}
创建匿名内部类,并调用:
public class InnerDemo {
public static void main(String[] args) {
/*
1.等号右边:是匿名内部类,定义并创建该接口的子类对象
2.等号左边:是多态赋值,接口类型引用指向子类对象
*/
FlyAble f = new FlyAble(){
public void fly() {
System.out.println("陈丽好吃屁");
}
};
//调用 fly方法,执行重写后的方法
f.fly();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。