Java正式day_10——面向对象02
构造方法主要是用来创建对象,来给成员属性赋初值。
不同的对象有不同的职责。
面向对象的思想:以对象为主体,考虑对象的行为。(即对象是否能做这件事)
final:关键字。最终的,不可变,常量。
使用final修饰成员的属性。要么直接赋值,要么在构造方法中赋值。
static:静态的,也表示类的。描述类的属性和方法。
类也可以拥有自己的属性和行为。
类成员与对象成员的区别:
-
类成员用static修饰,对于某个具体的类,只拥有一个。并非属于其中某一个对象。
-
类成员,可以通过类名称.成员名称,来访问。
-
对象成员,必须先创建对象,才能访问其成员。
面向对象的三大特性:
继承、封装、多态
继承:某些类型之间,存在属性和行为上的继承关系。
子类、父类(super class 超类 基类)相对关系。
关系:A IS B
任何一个类都直接或间接地继承自Object
如果一个类没有显示指明父类,则Object则是他的父类。
Object是祖先类。(Object没有父类)单根继承结构。
继承的注意事项:
-
关键字:extends
-
只能有一个父类(单继承)
-
部分属性和行为会被继承。私有成员不会被继承,如果不在同一个包内,则包访问修饰符不能被继承。构造方法不可以被继承。
构造函数构造过程:
如果构造方法没有调用本类的其他构造方法:默认第一句就是super();
构造方法调用了本类的其他构造方法:不在调用super();
访问修饰符:在那个范围内可以访问。
范围:类内,类外,包内,子类。
-
public:公共的。任何位置都可以访问。 类内,类外,包内,子类。
-
private:类内访问。
-
空 :包访问修饰符,友好访问修饰符。包内访问(?)
-
protected :包内以及子类。 受保护的
super.表示访问父类成员。
多态:同一个引用可能多种形态。向上转型(安全),向下转型(不安全)。
父类引用指向子类对象。