封装
将类中的信息隐藏起来不允许外部的类直接访问
,
如果外部的类想要访问必须通过特定的方式才能访问
封装一般只封装属性
使用方式
:
将属性私有化即属性通过
private
修饰
提供公有的
getter
和
setter
方法对私有的属性进行访问
优点
:
提高属性的安全性
提高系统的规范性
继承
当某些类具有公共的属性时
,
可以将这些属性放在一个类中
,
其中存放共同属性的类称之为父类
,
其他类为子类
;
父类中的属性可以传递给子类
,
子类可以使用父类中的属性
子类与父类的关系为
is-a
语法
:
访问修饰符
class
子类类名
extends
父类类名
{
}
在创建子类对象的时候会先创建父类对象
,
在创建子类对象时其实总共创建了两个对象
作用:提高代码的重用性
super
关键字
当子类中的属性、方法和父类中的属性、方法相同的时候通过
super
去调用父类中的属性、方法
语法
:
super.
属性名
;
super.
方法名
();
在子类中调用父类的构造方法
语法
:
super([
参数列表
]);
当调用父类的构造方式时
,
必须写在方法体的第一行
子类没有继承父类
1.
私有的属性和方法
,
不在同包下
,
子类不能继承父类默认修饰符修饰的属性和方法
2.
构造方法
方法的重写
(override)
有继承关系
,
在子类中重新编写父类的方法
方法名相同
,
参数列表相同
,
返回值类型也要相同
,
子类中的访问修饰的权限要等于或者大于父类的访问修饰符的权限
当父类的方法无法满足子类的需求的时候要用方法的重写
要在子类中重新调用父类被重写前的方法用
super
父类中的构造方法和私有的方法无法被重写
Object
类
Object
是所有类的父类
,
任何一个类都直接或者间接的继承了
Object
类
toString()
以字符串的形式返回该对象的地址
注意
:
当直接输出某个对象时是默认的调用了
toString()
多态
根据不同的情况显示不同结果
,
同一种引用类型创建不同的实例
成员变量:
编译的时候,参考父类中有没有这个变量,如果有,编译成功;没有编译失败
运行的时候,运行的是父类中的变量值
编译运行全看父类
成员方法:
编译的时候,参考父类中有没有这个方法,如果有,编译成功;没有编译失败
运行的时候,运行的是子类的重写方法
编译看父类,运行看子类
实现多态的条件
1.
有继承关系
2.
方法的重写
3.
向上转型
向上转型
(
即子类对象转化为父类对象
)
当子类向上转型为父类之后
,
会调用子类重写后的方法
,
不能调用子类独有的方法
即:(父类做类型,子类实例化)
向下转型
(
将父类转化为子类对象
)
向下类型转化语法
:
子类类型
子类对象
=(
子类类型
)
父类对象
父类对象要向下转型为子类对象
,
那么该父类对象必须是由子类对象转化过来的
instanceof(
判断某个对象的类型
)
判断某个父类类型是由哪个子类转化过来的
语法
:
对象名
instanceof
类类型