面向对象主要内容
2023-08-16 22:23:40 0 举报
AI智能生成
面向对象三大特性
作者其他创作
大纲/内容
特性
继承
子类不能继承父类的私有成员
单继承:一个子类只能继承一个父类;但一个父类可以有多个子类
多重继承
extends
super关键字:通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
final关键字:用于修饰类、变量和方法,它有“不可更改”或者“最终”的含义
特性
final修饰的类不能被继承
final修饰的方法不能被子类重写
final修饰的变量(成员变量和局部变量)是常量,只能赋值一次,所有字符大写,多个单词通过“_”连接(public static final double MY_PI = 3.14)
抽象类abstract
定义抽象方法:访问修饰符 abstract 返回数据类型 方法名();【没有方法体】
继承抽象类的子类必须重写父类的所有抽象方法。
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
抽象类中的抽象方法要被使用,必须由子类重写所有抽象方法后,实例化子类对象调用
接口interface
接口与类的相似点
一个接口可以有多个方法
接口文件保存在.java结尾的文件中,文件名使用接口名。
接口的字节码文件保存在.class结尾的文件中
接口相应得到字节码文件必须在与包名称相匹配的目录结构中
接口与类的区别
接口不能用于实例化对象
接口没有构造方法
接口不能包含成员变量,除了static和final变量
接口不是被类继承,而是被类实现
接口支持多继承
特性
接口中的成员变量只能是public static final类型
接口里的修饰符,默认是public
当类实现接口的时候,类要实现接口中的所有抽象方法,否则类必须声明为抽象的类
封装
安全性体现在private关键字
如果private修饰了成员变量,那么我们需要定义getter/setter方法 获取或赋值
生成了对象,直接输出对象,获取的是地址值,如果我们要输出对象那么我们要重写toString方法
特点
1. 良好的封装能够减少耦合。
2. 类内部的结构可以自由修改。
3. 可以对成员变量进行更精确的控制。
4. 隐藏信息,实现细节。
访问修饰符
public
private
default
protectd
this关键字:指向自己的引用
多态
优点
1. 消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性
利用继承实现多态
条件:
继承
重写
父类引用指向子类对象:Parent p = new Child();
好处
可以由子类指定父类,通过父类调用公共部分信息
弊端
子类特有的信息,父类不能调用,为了解决这个问题,可以使用向下转型后才可以。
利用接口实现多态
条件:
实现
父类引用指向子类对象
好处
可以由接口指定实现类,通过接口调用公共部分信息
弊端
实现类特有的信息,接口不能调用
向上转型
涉及到将子类对象当做父类类型使用的情况
将子类对象当做父类使用时不需要任何显式地声明,需要注意的是,此时不能通过父类变量去调用子类特有的方法
向下转型
前提:必须先向上转型后才能向下转型
不能将父类对象转成子类对象,只能将父类的引用,转成子类类型
0 条评论
下一页