封装,继承,抽象以及多态

1. 封装

1.1 什么是封装

把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位,尽可能隐藏对象的内部结构

1.2 为什么要封装

1、为了解决程序安全性的问题

2、屏蔽复杂,暴露简单

1.3 怎么完成封装

在java中通过4种“访问控制符”分别为private、default、protected、public,实现封装。所以在封装的过程中尽可能将访问权限降到最低

例如:使用访问权限private修饰成员变量

代码例如:

class Student{

        private int id;

        private String name;

}

 如上代码对Student的成员进行了封装,进行封装后的成员变量后将不能直接访问,因为由private修饰的成员变量只能在本类中使用。

同时,如要对已封装的成员变量进行读取以及读写,要使用setter和getter方法,如下代码:

public class Student {
    private int id;
    private String name;

    public int getId() {
        return id;
    }    
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

2. 继承

2.1 什么是继承

继承是在已有类的基础上创建新类的过程,已有类称为基类(父类),新类称为派生类(子类)

2.2 为什么要继承

继承主要实现重用代码,节省开发时间

2.3 如何进行继承

例如:

class 子类类名  extends  父类类名{
        子类的成员定义和声明
};

2.4 继承过程中的注意事项

1、继承具有传递性

2、继承具有单向性

3、继承具有单一性,子类只能有一个父类,但是可以有多个子类

4、object类是所有类的祖先类,所有类直接或间接继承它

5、子类继承父类所有成员,但是私有或默认成员由于访问权限无法访问

6、子类不能继承父类的构造方法

7、子类对父类的对象引用,可以使用super.【父类成员名】方法

3. 抽象类与抽象方法

3.1.1 是什么抽象类

抽象类是是一种特殊的方法,可以包含抽象方法,具体方法和成员变量。但是抽象类不能被实例化,只能被子类继承并实现其中的抽象方法

3.1.2 如何定义抽象类

使用关键词abstract定义一个类,如下代码:

public abstract class Student {
    //类的成员方法与变量的定义与声明
}

3.1.3 抽象类的特点与使用

1、抽象类不能被实例化

2、拥有抽象方法的类一定是抽象类,反之不一定;

3、抽象类有构造方法,也可以有实例方法 

4、拥有抽象方法的类比然是抽象类

5、当不需要创建某个对象时,可以使用抽象类 

3.2.1 什么是抽象方法

没有方法体的方法是【抽象方法】

3.2.2 为什么要定义抽象方法

当一个方法的方法体的内部实现与不实现没有任何意义,不实现方法体时

3.2.3 抽象方法的特点

1、有抽象方法的类一定是抽象类,抽象的类里不一定有抽象方法 

2、抽象类不能通过new 来实例化

3、抽象方法由abstract定义

4、抽象方法是一个不完整的方法,没有方法体

3.2.4 如何使用抽象方法

当子类继承父类的抽象方法时,需通过重写抽象方法进行使用,如下代码:

public abstract class MotoVehicle {
    public abstract void print();
}

----------------------------------------------------------

public class Bus extends MotoVehicle{
    @Override
    public void print() {
        System.out.println(seatCount+"的客车的日租费为:"+super.getPrice());
    }
}

 4. 多态

4.1 什么是多态

同一个引用类型 ,使用不同的实例而执行不同操作 (即多种运行状态)

4.2 为什么要实现多态

解决程序的拓展性问题

4.3 怎么实现多态

1、子类必须覆写父类的方法

2、通过父类的引用调用子类重写的方法

多态实现的过程注意

3、编译时多态:在程序编译时,对象属于哪个类的方法则调用哪个类的方法

2、运行时多态:在程序运行时,根据父类的引用在找到对应的对象的实际类型,再调用该类型的方法。

重写方法的特点

1、方法名一致
2、参数一致
3、返回值一致
4、子类的访问修饰符不能严格于父类

重载方法的特点

1、方法名一致
2、参数列表不同
3、与返回值无关

tips

类创建时,会在方法区开辟一个空间以存储方法,因此方法都在方法区内
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值