static、接口、上转型、

一、static、

1、用static修饰的变量叫类变量,静态变量;

     类加载时 初始化一次当前变量并赋值  再次调用赋值会改变值(未赋值默认为0)

     修饰的变量作用在所有该类的具体实例上

     调用:  类名.变量      可更改值

2、调用父类的构造方法不能使用静态修饰的方法,

      静态修饰的方法不存在父类里,不存在构造器里,没有权力重写。

      静态的方法 只可以调用静态变量,不可以使用成员变量;

      实例的方法 可以调用静态和非静态的。

3、static、final  修饰的方法不能被重写

     abstract   必须重写

运行顺序:静态变量和静态代码块   成员变量和代码块快    构造方法    静态方法    实例方法

二、接口、

1、为了解决单继承问题,不想用也被调用的问题

     是方法级别的抽象,必须有重写

     接口不是类,没有构造器,不能被实例化;

2、默认为公有的静态常量;public static final

     默认为公有的抽象的方法;public abstructor 

     可以同时继承和接口实现

3、 interface +接口名  =接口    物理接口  可以使用不同的能力   可以使用多种方法

      implements(实现):接口继承

      接口隔离原则:  两个方法没有关系放在两个接口里

4、jdk 1.8之后,新加了default 、static两个方法:

     JDK8开始,接口中可以定义有方法体的方法,方法必须被default和static修饰。除此之外,其         他方法都是抽象方法。

5、接口和抽象类的相同点:都必须重写;不能实例化,设计与实现相分离 

     接口和抽象类的区别:

接口抽象类
interfaceabstract
方法级别的抽象,没有构造方法

类级别的抽象,有构造方法

来完成属于抽象类的初始化

操作

implements可加多个接口单继承
默认为公有的抽象方法可有非抽象

                                        默认为公有的静态常量                           

           只能包含抽象方法,静态方法和默认方法              完全可以包含普通方法

                                               不能包含初始化块              完全可以包含初始化块

类可以实现接口,接口不可以实现类,但是可以继承接口,相当于能力的累加,而且支持多重继承

a instanceof B 判断a属不属于B类

三、上转型对象(小转大)

编译看左边,运行看右边。

1、编译的时侯认为对象是父类的,所以不能显示调用子类的

2、运行时认为是子类的

3、占用子类的内存空间

4、拥有父类的基本属性

编译看左边,运行看右边。 父类型引用指向子类型对象,无法调用只在子类型里定义的方法

子类中的方法覆盖父类的方法以后,由于向上转型,父类调用的方法实际上是子类的

里氏代换原则:父类出现的地方子类一定出现

                         子类出现父类不一定可以出现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值