Java 学习 day11:封装,集成,final,super,方法重写

1.封装

封装:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为相结合,形成一个有机的整体.也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员

1.1package

package:软件包机制

        限制的是编译之后的class文件的保存目录,和源文件无关

        eclipse中,源文件也必须在这个目录中,这是eclipse的问题,和package无关

        而java中的package只是规定class文件

1.主要为了解决命名冲突问题

2.package语句必须出现在java源文件的第一行

3.一般采用公司域名倒叙的方式

4.带有package语句的java文件,应该这样编译

        javac -d 生成路径 字符编码 源文件路径

        javac -d ./  -endcoding  utf-8  xxx.java

         -d : disk 磁盘

        ./: 代表当前目录

5.运行

        java 包名.类名

1.2        import

Java 学习 day11:封装,集成,final,super,方法重写

 Java 学习 day11:封装,集成,final,super,方法重写

 1.3        权限控制

Java 学习 day11:封装,集成,final,super,方法重写

 

2.继承

2.1        是什么

继承:就是在已有的类中派生出新的类.新的类能够吸收父类已有的属性和行为,并且还能扩展自己的属性和行为

特点:java中只支持单继承,不支持多继承,这样使得java的继承体系

一个类只能有一个父类,但是一个类可以有很多子类

继承关系具有传递性

private私有化程序,方法(包括构造方法)都不能被继承

2.2        能做什么

解决什么问题:提高代码的复用,提升开发的效率

一个类中若果没有显示继承另一个类,那么该类默认继承Object

java.lang.Object        是java提供的类的根类,也就是祖宗

2.3        怎么用

语法:子类extends父类

3.super

3.1        是什么

代表父类型的特征,可以理解为父类对象,但是其实不是的

子类中,通过super来标识父类,通过this来标识自己

3.2        能做什么

和this一样,不能在静态上下文中使用

功能:1.用在构造方法或者成员方法中,区分子类和父类同名字的方法和变量

        2.用在子类构造方法中,嗲用父类的构造方法

                super(参数);   必须出现在子类构造方法第一行

                this(参数);        必须出现在构造方法的第一行

                所以super和this不能童女士出现

如果子类构造方法的第一行,没有出现this(参数) ;也没有super(参数) ;则默认有个super() ;调用父类的无参构造

3.3        怎么用

Java 学习 day11:封装,集成,final,super,方法重写

 Java 学习 day11:封装,集成,final,super,方法重写

 3.4        注意

1.this(参数) ;和super(参数)  ;不能同时出现

2.如果没有this(参数);也没有super(参数) ;,默认构造方法的第一行会有super()调用父类的构造方法

3.如果构造方法私有化,则该类不能被继承,因为子类在创建构造方法的时候,默认第一行有个super
()方法,去调用了父类的构造方法,但是人家私有化了,不给你

finla修饰的类也不能被继承

4.方法重写(Override)                        方法重载(Overload)

4.1        什么时候需要用到方法重写:

        当父类的功能无法满足子类的需求的时候,子类需要根据需求对方法进行扩展重写

方法重写只能用于成员方法

4.2        重写的必要条件

        1.必须有继承关系的体系中

        2.方法名字,参数列表,返回值都必须一致

        3.不能比原方法有更宽泛的异常(错误不能越来越多)

        4.不能比原方法拥有更低的访问权限(父类方法是个public,子类重写不能是个private)

4.3        重写的意义

        功能越来越强了

        错误越来越少了

        使用的范围越来越广了

4.4        @override注解

     Java 学习 day11:封装,集成,final,super,方法重写  

 

5.final

5.1        是什么

final是修饰符,表示最后的,最终的,不能修改的

5.2        能做什么啊

1.final修饰的类不能被继承

2.final修饰的方法不能被重写

3.final修饰的变量不能被二次赋值,并且必须赋初始值,因为他没有默认值

4.final修饰的静态变量,一般叫常量,一般用(PSF)public static final 修饰,常量名建议全部大写

5.3        怎么用

Java 学习 day11:封装,集成,final,super,方法重写

 Java 学习 day11:封装,集成,final,super,方法重写

 Java 学习 day11:封装,集成,final,super,方法重写

 Java 学习 day11:封装,集成,final,super,方法重写

 5.4        深入final

final修饰的引用类型,因为引用类型是保存的地址,所以地址不能更改,但是地址能够访问的哪个空间中的数据可以被更改

Java 学习 day11:封装,集成,final,super,方法重写

 

上一篇:Java super关键字


下一篇:CGBTN2109-DAY07总结复习