面向对象(final和抽象类)

面向对象(final和抽象类)

一、final关键字

final是最终的意思,修饰最终不变的变量和方法

  • final修饰的变量是常量

    • 成员变量用final修饰必须给最终的字面值,不能只声明

    • 常量都用全大写(开发规范)

    • final实际开发通常去设置参数配置等信息

    • 数学中的常数通常用final修饰,如3.14

  • final修饰方法不能被重写覆盖

  • final修饰的类不能继承没有子类

String类是一种引用数据类型,同时被final修饰

tip:final修饰变量时,不变的是内存地址,存放在其中的数据可以改变

二、抽象类

很多时候,我们写父类的成员方法都不写方法体,由子类继承以后重写

所以我们可以把父类的方法抽象化。

语法:在class关键字前使用关键字abstract

public abstract class Person{ }

方法

比起普通类,抽象类类体中多了抽象成员方法

语法:在返回值之前加上abstract关键字,抽象方法没有方法体

public abstract void eat( );

特点

抽象类是比普通类多出抽象成员方法,所以也有成员方法,而且有抽象方法的,一定是抽象类

有抽象方法的类不能直接创建对象,本来就是因为不实例化只让子类继承重写的,自然不能创建对象

没有抽象方法的普通类,必须重写父类所有的抽象方法

抽象类不用重写父类的抽象方法,因为抽象方法不写方法体,而重写是改变方法体,所以抽象类重写抽象方法无意义

抽象类有构造函数的,创建子类仍然会创建父类对象

abstract不能修饰成员变量

总结:如果父类不用创建对象,可以写成抽象类

三、访问修饰符

修饰词 含义解释 访问权限

private 私有的 当前类

default 不写默认default 同包

protected 受保护的 只有继承的才可以

public 公开的 无限制,任何地方都可以访问

这些修饰词可以修饰 类 成员变量 成员方法

类和方法一般用public,内部类才可以用protected和private修饰

成员变量 一般用private修饰

 

posted @ 2019-10-04 21:02  Wollf  阅读(120)  评论(0)    收藏  举报