20190304JAVA学习笔记:接口,抽象类,静态类

一、接口中的所有方法默认都是public abstact修饰的,所以不需要在前面加public abstact。

二、abstract类不能实例化,必须被非抽象类继承才能使用,这也是抽象类被设计出来的主要作用。

但是抽象类和接口都可以被声明,其声明的对象可以指向继承了它们的子类。(注意匿名内部类的使用)

三、抽象类中可不可以定义静态(static)方法?

答:可以。抽象类中可以定义静态方法,只是抽象类自己不能实例化,所以这个静态方法实际是帮自己的子类(实现类)定义的。但是抽象类中不能有”静态抽象“方法,因为根本就没有“静态抽象方法”这种东西存在,因为它是无意义的。

四、“静态抽象”是不存在的,因为两者在功能上相互矛盾,设计者也不会允许它们同时存在。

五、静态与非静态的区别

这里的静态,指以static关键字修饰的,包括类,方法,块,字段。

非静态,指没有用static 修饰的。

静态有一些特点:

1.全局唯一,任何一次的修改都是全局性的影响

2.只加载一次,优先于非静态

3.使用方式上不依赖于实例对象。

4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。

可参考 :http://blog.csdn.net/zhandoushi1982/article/details/8453522/。

 

关于静态内部类(嵌套类)和非静态内部类的区别,可参考:

http://www.jb51.net/article/74838.htm

(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。

(2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

(3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

参考:https://www.cnblogs.com/muffe/p/6580208.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值