java-面向对象
面向对象
类与对象
类时构造对象的模块,由类构造对象的过程称为创建类的实例;
我们可以将类想象成面包机,将对象想象成面包;
用java编写的所有代码都位于某个类中。
类之间的关系
对象的主要特性
关键字static
(1)static修饰的方法是类的方法,可以通过类名.方法名直接引用,不需要再创建一个类实例去引用;
(2)static修饰的变量是类的变量,可以通过类名.变量名直接引用,不需要再创建一个类实例去引用;
(3)static代码块俗称静态代码块,静态代码块里的代码只执行一次并且在类初始化时执行。
静态域资源在类初始化的时候加载,非静态域资源在创建类实例时加载,即静态域的资源早于非静态域的资源加载。
a.静态方法不可以引用非静态资源;
b.非静态方法可以引用静态资源;
c.静态方法里可以引用静态资源。
抽象类与接口
抽象类
作用
用于派生其他类的基类,包含一些通用的方法和属性
特点
1)一个抽象类可以没有抽象方法,但是包含一个或多个的类必须声明为抽象类
2)抽象类不能构造自身类的实例对象,一般由抽象类声明的变量指向其具体的子类实例对象
强制类型转换
将一种类型强制转换成另一种类型
栗子1,基本数据类型的转换
栗子2,引用数据类型的转换
将一个类的对象引用强制转换成另一个类的对象引用
类型转换的原因
暂时忽略对象的实际类型,使用对象的全部功能
将一个子类对象引用赋给超类变量,编译器是允许的,
将一个超类对象引用赋给子类变量,必须进行类型转换才能通过运行时检查
继承
子类继承父类,意味着子类可以继承父类的实例变量和方法,另外,子类可以加入自己的实例变量和方法,
也可以覆盖来自父类的方法,父类的实例变量无法被覆盖是因为不需要,因为父类没有定义任何特殊行为,
子类可自行设定从父类继承的实例变量。