JAVA学习历程记录(一)

JAVA学习历程记录(一)

final

final修饰的数据*称为常量,定义之后不能修改

final int a = 10;
a = 50;

这里第二行的a就会显示编译错误
【补充】这里String定义的变量就是常量
final修饰的变量必须在创建对象成功之前和类加载成功之前赋值成功
final修饰的方法可以被继承,但是不能被重写和隐藏
final修饰的类不能被继承

抽象类

public class Example{
public void a(){
}
public abstract void b()[
}
}
public class Example2 extends Example1{
public void b() {
}

被抽象类修饰方法必须在抽象类子类中被实现

接口

public interface Cal {
public abstract double getArea();
}
public class Circle implements Cal {
public double getArea(){
return 0;
}

接口不是类
接口中的方法是抽象方法(但在sdk1.8中接口中的方法可以有方法体)
接口不能实例化,不能有构造方法
用接口声明对象,用接口的实现类创建向上对象
接口可以存在多继承多实现

补充】为什么编译期间,任何一个接口都可以强转
因为多态,java多态可以实现向上造型,普通的父类声明,子类创建对象,java编译器可以很快摸清楚类与类之间的关系,但是接口是多继承与多实现的关系,就导致这部分的计算过于庞大,java编译器难以完成这部分的任务,所以就直接允许接口可以强转,运行出错后让程序员自行修改。

内部类

局部/方法内部类

定义在方法中的类

只能被abstract,final修饰
可以使用外部类的一切属性和方法
不可以定义静态变量和静态方法
可以继承和实现
如果局部内部类使用了当前方法中的数据,那么这个数据就默认了常量

成员内部类

定义在类中方法外的类

可以被修饰符修饰
可以使用外部类中的属性和方法
不可以定义静态变量和静态方法

静态内部类

使用static修饰的内部类

只能使用外部类的静态属性和静态方法
可以定义任意的变量和方法

匿名内部类

没有名字的内部类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值