Javase进阶篇--总结1

面向对象高级篇

1.static关键字

2.继承

3.final关键字

4.抽象类

5.接口

6.多态

7.代码块

8.内部类

8.Lambda表达式

一、static 关键字

1.static关键字:可以修饰成员变量(常用作共享数据),也可以修饰成员方法(常用作工具类)

2.static关键字修饰成员的特点:被其修饰的成员,被该类的所有对象共享;

                                                   往往习惯于用该类 类名. 的方式调用static修饰的成员;

                                                   随着类的加载而加载,优先于对象存在; 

3.static修饰的成员运行时是被加载到堆内存当中,有一片专门开辟的该类的静态成员变量区。

程序运行时,主方法所在的类和包含static关键字的A类以字节码的形式被加载到方法区,主方法区中的main方法被虚拟机自动在栈内存中执行,若此时实例化A类对象a,栈内存中开辟的main方法区中会定义出变量用于接收堆内存中开辟的对象a的地址值。

4.注意点:静态方法中,只能访问静态成员(即静态变量或静态方法);static方法中(包括main方法)不能使用this关键字(c.StaticDemo2.this' cannot be referenced from a static context)

二、继承

1.继承:让类与类之间产生关系(子父类关系),子类可以直接使用父类中非私有的成员(成员变量、成员方法、构造方法)

2.当子类和父类中拥有重名的成员变量时,根据就近原则,优先使用子类中的成员变量;若想用父类中的成员变量,用super.变量的方式在子类方法中调用

 3.子类可以继承父类当中方法并调用(非私有),想做一定修改,可以方法重写(方法重写需要保证子父类方法声明完全一致-----方法名,参数类型,返回值类型)

方法重写注意:父类中的私有方法不能被重写;子类中重写的方法访问权限必须要大于等于父类的,往往子类重写的方法访问权限与父类保持一致

4.权限修饰符

主要关注private和public即可,其余两个不常用 

5.Java继承的特点:Java只支持单继承,不支持多继承,但支持多层继承

                                为什么不支持多继承?多个父类中成员名可能重名,子类调用时会冲突

                                为什么支持多层继承?根据就近原则

6.继承中,构造方法可以被子类继承,只是需要子类自己手动编写;

子类在初始化之前,需要先完成父类的初始化,否则无法访问父类中的成员;

 在所有的构造方法中,都默认隐藏了super();通过该行代码,访问父类的空参构造方法

7.this和super

this()和super()都在争夺构造方法中第一行的位置,所以二者不能共存 

三、final 关键字

1.final关键字可以修饰方法(方法不能被重写)、变量(不能被再次赋值)、类(不能被继承)。

2.final修饰的如果是基本数据类型变量(byte、short、char、int、boolean、double、float、long):该变量的数据值不能发生再次改变;

如果修饰的是引用数据类型,引用数据类型的地址值不能发生改变,但是地址里面的内容是可变的;

如果修饰的是成员变量:需要在构造方法结束之前完成赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值