Java是面向对象的语言
面向对象语言的三大特征: 封装、继承、多态。
继承的特点: 1、子类继承父类后,子类可以拥有父类的属性和方法(必须是权限范围内的类)
2、子类继承父类后,子类可以添加自己的属性和方法,但是父类不可以调用子类的属性和方法。
3、子类可以在权限范围内的类中重写父类的方法。
父类代码示例:
Public class People{
Public String name;//姓名
Public byte age;//年龄
//有参构造器
Public People(String name){
This.name = name;
}
//无参构造器
Public People(){
}
//普通方法
Public void shopping(){
System.out.println(“购物”);
}
Public void drink(){
System.out.println(“喝茶”);
}
子类代码示例:
//男人类 继承人类(People)
Public class Man extends People{
//子类添加自己的属性
Public double salary;//工资
Public Man(){
Super(“胡海峰”);//父类的无参构造方法
}
//重写父类的shopping方法
@Override
Public void shopping(){
Super.shopping();//super:父类的对象
System.out.println(“一次美好的购物体验”);
}
重载(Overload)与重写(Override)的区别:
权限 | 返回值类型 | 名称 | 参数 | |
---|---|---|---|---|
重载(同一个类中的方法) | — | — | 一样 | 不一样 |
重写(有继承关系的两个类中) | 只能扩大不能缩小 | 必须一样 | 必须一样 | 必须一样 |
Java中的继承是单根继承,一个子类只能有一个直接父类。
默认创建的类继承Object,Object是所有累的父类(基类)。
Java中的权限修饰符:
Public(公共的) | 在任何位置都可以使用 |
---|---|
Protected(受保护的) | 只能在同一包下使用,或者是子类中使用 |
缺省的(默认的) | 只能在同一包下使用 |
Private(私有的) | 只能在当前类文件下使用 |
子类在重写父类方法时,可以修改权限修饰符,但只能扩大,不能缩小。
封装
封装就是将类的属性和行为结合成一个独立的相同单位,并隐藏类的内部细节,保证了程序和数据不受外部因素的干扰。
代码示例:private String name;//私有属性(即封装)
Private byte age;
要调用封装类,需要使用set get 方法,set是赋值方法,get是取值方法;
代码示例: public void setName(String name) {//给name赋值
this.name= name+”肛夫”;
}
//获取name属性
public String getName() {
return name;
}
属性是Boolean 类型时, 取值方法时is+属性名;
多态
多态的本质是指父类的引用可以指向子类的对象,反之则不可以;
格式:父类的变量 = 子类的对象;
Java多态有两个多态:1、静态多态,也叫编译时多态,通过方法重载实现;
2、动态多态,也叫运行时多态,通过对象的多态性实现
一个引用类型变量如果声明为父类的类型,但实际指向的是子类对象,那么该变量就不能在访问子类中独有的属性和方法;
当子类中重写了父类的方法,和父类拥有同名属性、方法时,方法将按照对象的运行时类型调用,属性将按照对象的声明时类型调用;