黑马程序员----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修饰符
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、抽象类中的抽象方法要被使用,必须由子类复写其所有抽象方法后,建立子类对象调用。
如果子类只覆盖部分抽象方法,该子类还是一个抽象类。

注意:
抽象类的相关问题:

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
原创粉丝点击