面向对象编程
前面介绍了类和对象,今天来看看下一个主题是面向对象程序三大特性:封装、继承、多态。
文章目录
前言
面向对象程序三大特性:封装、继承、多态。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节。
一、封装是什么?
封装就是将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互简单的来讲也就是
对象代表上面旧的封装对应的数据,并且提供数据对应的行为.
1.访问限定符修饰
在类和对象章节中,为了实现封装特性,Java中引入了访问限定符,主要限定:类或者类中成员能否在类外或者其他包中被访问。
注意:父类中private成员变量虽然在子类中不能直接访问,但是也继承到子类中了
我们希望类要尽量做到 “封装”, 即隐藏内部实现细节, 只暴露出必要的信息给类的调用者.
因此我们在使用的时候应该尽可能的使用比较严格的访问权限. 例如如果一个方法能用 private, 就尽量不要用 public.
另外, 还有一种简单粗暴的做法: 将所有的字段设为 private, 将所有的方法设为 public. 不过这种方式属于是对访问权限的滥用, 还是更希望同学们能写代码的时候认真思考, 该类提供的字段方法到底给 “谁” 使用(是类内部自己用, 还是类的调用者使用, 还是子类使用).
2.final关键字
final关键可以用来修饰变量、成员方法以及类。
1. 修饰变量或字段,表示常量(即不能修改)
finalinta=10;
a=20; //编译出错
2. 修饰类:表示此类不能被继承
final public class Animal {
...
}
public class Bird extends Animal {
...
}
// 编译出错
Error:(3, 27) java: 无法从最终com.bit.Animal进行继
其次
我们平时是用的 String 字符串类, 就是用 final 修饰的, 不能被继承
二、什么是继承?
使用继承的好处
1.可以把多个子类重复的代码抽取到父类中,提高代码的复用性。
2子类可以在父类的基础上,增加其他的方法和功能,使子类更强大。
1.简单叙述
面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用
2.引入关键字
java中提供了extends关键字,这个关键字可以让一个类和另一个类建立起继承的关系。
代码的格式:
public class 子类 extends 父类{ }
3.继承的特点和设计
java只支持单继承,不支持多继承,但支持多层继承。 这句话的意思是一个儿子不能有多个爸爸,但我的爸爸也有爸爸。
4.子类能继承父类的内容
如下表可以表示:
1.构造方法
class Animal{
String name;
int age;
String sex;
public Dog() {
//无参
}
public Dog(String name, int age, String sex) {
//三参
this.name = name;
this.age = age;
this.sex = sex;
}
}<