栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

封装继承多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

封装继承多态

一、封装

封装是一种将抽象性函式接口的实现细节包装,隐藏起来的方法

1.封装的优点:
1.封装可以保护外部类对本类的随机访问
2.良好的封装可以减少耦合
3.类内部的结构可以任自己修改
4.可以对成员变量更精准的控制
5.隐藏信息,实现细节
2.封装的实现
1.将自己的属性值改变(一般设置为private)
设置为私有,只能本类访问,其他类不可以访问本类的属性,这就隐藏了信息
2.每个值的属性对外提供get-set方法,外部类可以通过get和set方法访问
(其中this是实例变量的值)

二、 继承 1.为什么要继承:

比如说有两个类,一个是狗类,一个是猪类,他们有共同的行为,吃饭,睡觉,狗叫
在其两个类中都声明其方法,太麻烦了,所以就想到把他们的共有方法提出来,成为父类,狗和猪继承父类的吃饭和睡觉方法,就可以拥有自己的特性。

2.继承的优点:
1.使得代码更加简洁
2.提高了代码的复用性
3.继承的特性
  • 子类拥有父类非private的属性,方法

  • 子类可以拥有自己特有的方法和属性(可以对父类进行扩展)

  • 子类可以用自己的方法实现父类的方法

  • java中的继承都是单继承

4.继承的案例
注意:
super:通过该关键字可以实现对父类的访问,用来引用当前对象的父类
this:指向自己的引用
三、多态 1.什么是多态

多态是指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。
比如有狗类、猪类、猫类,他们有共同的吃方法,但是具体吃的是什么大不一样,狗吃狗粮,猪吃猪食,即一个方法有不同的形式。

2.多态的三个必要条件
1.继承
2.重写:子类能够重写父类的方法
       当子类对象调用重写的方法时,调用的是子类的方法,如果想调用父类的方法,必须使用super关键字。
3.父类的引用指向子类的对象 Parent p = new Child();
3.多态的案例

父类小汽车

//1.通过分析,抽象形成一个汽车类
class Car{
    //2.定义并封装汽车类的属性--成员变量
    private String brand;//品牌
    private String color;//颜色
    private int id;//编号
    private double price;//价格

    //3.定义功能
    public void start(){
        System.out.println("我的小车车启动啦~");
    }
    public void stop(){
        System.out.println("唉呀妈呀熄火了~");
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

子类

//4.创建子类
class BMW extends Car{
    String color = "五彩斑斓的黑";
    //5.重写父类的方法
    @Override
    public void start(){
        System.out.println("都让开,我的车要起飞啦~");
    }
}
//6.创建子类2
class TSL extends Car{
    //7.重写父类的方法
    @Override
    public void stop(){
        System.out.println("唉呀妈,怎么停不下来呢");
    }
    //8.添加子类的特有功能
    public void swim(){
        System.out.println("没想到吧,我还是个潜水艇");
    }
}

主方法

public class DesignCar {
    public static void main(String[] args) {
        //9.创建一个纯纯的父类对象进行测试
        Car c = new Car();
        System.out.println(c.getColor());//null
        c.start();
        c.stop();
        //c.swim();//报错,父类对象不可以调用子类的特有功能
        //10.创建纯纯的子类对象做测试
        BMW b = new BMW();
        System.out.println(b.color);//五彩斑斓的黑
        System.out.println(b.getColor());//null
        b.start();//都让开,我的车要起飞啦~
        b.stop();//唉呀妈呀熄火了~

        //11.创建多态对象进行测试
        Car c2 = new TSL();
        //System.out.println(c2.color);
        System.out.println(c2.getColor());
        c2.stop();
        c2.start();
        //c2.swim();
    }
}

运行结果如下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号