黑马程序员----Java基础(六):面向对象之二
来源:互联网 发布:人口数据怎么查 编辑:程序博客网 时间:2024/05/01 02:38
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Java基础:面向对象
一、继承
1).定义:抽取一些类的共性内容,封装在一个类中,称为父类。一些类可以继承父类,通过继承原则,拥有父类中一切。
2).好处:
A.继承的出现,提高了代码的复用性;
B.继承的出现,让类与类之间产生关系,通过extends连接。
3).特点:
A.Java只支持单继承;
B.Java支持多层继承,形成一个继承体系(父类--子类--子子类).我们可以查阅父类功能,创建子类对象使用功能
二、子父类中的成员特点
1).成员变量:super() 引用
2).成员方法(函数)
3).子父类中的构造(方法)函数
final 最终。
1、作为一个修饰符,可以修饰类、函数、变量。
2、被final修饰的类,不能继承;(为了避免被继承,防止子类复习功能)
3、被final修饰的方法,不能被复写;
4、被final修饰的常量,只能赋值一次。既可以修饰成员变量,也可以修饰局部变量;
当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读。
而这个值不需要改变,所以加上final修饰。
常量的书写规范:所有字母都要大写。由多个单词组成,单词间通过下划线 _ 连接
权限最大,可通过类名直接调用,无法被赋值,全局变量
5、内部类定义在类中的局部位置撒上时,只能访问该局部被final修饰的局部变量。
1、作为一个修饰符,可以修饰类、函数、变量。
2、被final修饰的类,不能继承;(为了避免被继承,防止子类复习功能)
3、被final修饰的方法,不能被复写;
4、被final修饰的常量,只能赋值一次。既可以修饰成员变量,也可以修饰局部变量;
当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读。
而这个值不需要改变,所以加上final修饰。
常量的书写规范:所有字母都要大写。由多个单词组成,单词间通过下划线 _ 连接
public static final double MY_PI = 3.14;
权限最大,可通过类名直接调用,无法被赋值,全局变量
5、内部类定义在类中的局部位置撒上时,只能访问该局部被final修饰的局部变量。
四、抽象类
abstract
用处:当多个类中出现相同功能,但是功能主体不同时,也可以向上抽取。
这时,我们只抽取功能定义,不抽取功能主体。
用处:当多个类中出现相同功能,但是功能主体不同时,也可以向上抽取。
这时,我们只抽取功能定义,不抽取功能主体。
抽象类的特点:
1、抽象方法一定存放于抽象类中
2、抽象方法和抽象类都必须被abstract关键字修饰
3、抽象类不可用new创建对象,因为调用抽象方法没有意义
4、抽象类中的抽象方法要被使用,必须由子类复写其所有抽象方法后,建立子类对象调用。
如果子类只覆盖部分抽象方法,该子类还是一个抽象类。
1、抽象方法一定存放于抽象类中
2、抽象方法和抽象类都必须被abstract关键字修饰
3、抽象类不可用new创建对象,因为调用抽象方法没有意义
4、抽象类中的抽象方法要被使用,必须由子类复写其所有抽象方法后,建立子类对象调用。
如果子类只覆盖部分抽象方法,该子类还是一个抽象类。
注意:
抽象类的相关问题:
A:抽象关键字abstract不可以和哪些关键字共存?
|--private
私有的,外部直接无法访问。子类也同样无法访问
A:抽象关键字abstract不可以和哪些关键字共存?
|--private
私有的,外部直接无法访问。子类也同样无法访问
|--abstrac修饰的方法就是为了让子类继承并重写的
|--static
那么这个时候抽象方法就可以可以通过类名调用,但是这样是没有意义的。
因为抽象方法中没有方法体,没有语句用于执行
|--final
final修饰的方法不能被重写。所以它和abstract冲突。
B:抽象类中可不可以没有抽象方法?
可以。如果这么做只有一个目的不让你创建这个类的对象
可以。如果这么做只有一个目的不让你创建这个类的对象
抽象练习
模版方法模式
五、接口interface()
定义:当一个类中的所有方法都是抽象类时,就无需定义abstract类,可以定义interface类
成员特点:
A)只有成员变量和成员方法
B)成员都有默认修饰符
成员变量:默认修饰符 public static final(可以省略不写)
成员函数:默认修饰符 public abstract(可以省略不写)
接口java中只能单继承的问题,让多继承以另一种优化方式存在
A)类与类:只能是单继承(extends)
B)接口与接口:可以单继承,可以多继承(extends)
C)类与接口:可以是单实现,可以是多实现(implements)
interface A{}interface B{}class C implements A,b{}
接口的特点:
A)接口是对外暴露的原则
B)接口是程序的拓展
C)接口可以实现多实现
D)类与接口的实现关系,而且类可以继承一个类的同时,实现多个接口
E)接口与接口之间可以有继承关系
接口类与抽象类的区别:
A)抽象类只能被单继承(extends),接口类可以被多实现(employee)
B)成员的不同:
抽象类:成员变量可抽象,可不抽象;成员方法可抽象,可不抽象;构造方法可以用以实例化
接口类:成员变量有默认修饰符 public static final;成员方法有默认修饰符 public abstract
C)抽象类中定义的是继承体系中的共性内容;
接口类中定义的是对象的扩展功能。
接口实例:
0 0
- 黑马程序员----Java基础(六):面向对象之二
- 黑马程序员---JAVA基础---面向对象(六)
- 黑马程序员---Java基础--06天(面向对象之二)
- 黑马程序员---java基础之面向对象(二)
- 黑马程序员--Java基础之面向对象总结(二)
- 黑马程序员 java基础复习二 之面向对象
- 黑马程序员----java基础之面向对象二
- 黑马程序员--Java基础之面向对象二
- 黑马程序员-(11)Java基础之面向对象(六)异常
- 黑马程序员-----Java基础----面向对象(二)
- 黑马程序员_java基础之面向对象(二)
- 黑马程序员——Java基础---面向对象(二)
- 黑马程序员-Java基础(二)-面向对象
- 黑马程序员——Java基础-------面向对象(二)
- 黑马程序员——Java基础---面向对象(二)
- 黑马程序员----JAVA基础之面向对象
- 黑马程序员----java基础之面向对象
- 黑马程序员----Java基础之面向对象
- 【Java】Java基础知识2. MyEclipse快捷键大全
- Improve API Gateway Throttling
- Ubuntu下配置Web服务器详细步骤
- Java 面试题问与答:编译时与运行时
- 两个凡是:凡是在系统树上的才是有意义的,凡是脱离了树的都是无意义的。
- 黑马程序员----Java基础(六):面向对象之二
- 1086. Tree Traversals Again (25)
- Maven依赖版本冲突报告
- 离散对数,giant-step baby-step,拓展giant-step baby-step (poj 2417, hdu 2815)
- 移动前端不得不了解的html5 head 头标签
- Tomcat配置HTTPS方式(单向)
- jquery将数据以table的形式显示,实现数据统计,分页,以及动态添加,搜索
- Java多线程学习笔记
- NOIP2006数列