继承、封装特性简介

2020-11-05  本文已影响0人  放开好人
声明:本文为了梳理JAVA基础而整理,结合网络信息与个人理解汇聚而成,若不小心构成侵权,随时联系,随时删除。

java面向对象四个基本特性:抽象、继承、封装、多态。
抽象、继承、封装是多态的基础,多态是抽象、继承、封装的表现。

封装

一、浅谈封装

  1. 概念
    将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作。
  2. 目的
    直接通过操控类对象来达到目的,不需要对具体实现十分了解,使类属性和方法的具体实现对外不可见。不但方便还起到了保护作用。
  3. 用途
    • 常用的对象类,成员变量及其get set方法。成员变量为私有不允许外部访问,但提供了对象的getset方法,并可以在该方法中加以控制或操作。比如判断如果set为空,则赋值为0。等等。
    • 普通方法类中,若某一方法只先为本类其他方法所服务,完全可以设置为私有方法。内部私有,外部拒绝访问。

继承

一、浅谈继承

多数借鉴来自:https://www.cnblogs.com/chenssy/p/3354884.html
1、概念
在程序中继承以后,你的父类和你的子类同样的也具有某一成员变量和某些方法,谁继承了父类谁就是这个父类的子类,他们之间也就存在中某种连带关系。
2、目的
防止代码重复、冗余。
3、用途
定义一个类做为父类,将一些共有的属性和方法定义在这个类中,当某一个类需要使用到这些方法和属性的时候,就可以直接通过extends关键字就可以直接调用父类中的成员变量和方法,方便快捷。
4、特点

二、示例

package com.fangk.juc;
class Fu{
    String fu ="fu";
    void playFu(){
        System.out.println("将被继承并重写的父类方法");
    }
    void playSelf(){
        System.out.println("父类自己的实现方法");
    }
}
class Zi extends Fu{
    String fu = "zi";
    void playFu(){
        System.out.println("重写父类playFu");
    }
    void playZi(){
        System.out.println("子类自身play");
    }
}
public class TestFuZi {
    public static void main(String[] args) {
        Fu fu = new Fu();
        fu.playFu();//打印父类自己的将要被重写的方法
        fu.playSelf();//打印父类自己的未被重写的方法
        System.out.println(fu.fu);//打印自己的成员变量
        Zi zi = new Zi();
        zi.playFu();//重写父类方法,打印子类重写后的方法
        zi.playZi();;//打印子类自己的方法
        zi.playSelf();//打印子类没有,继承自父类的方法
        System.out.println(zi.fu);//打印父子共有的成员变量,出来的是子类成员变量
    }
}
---结果
将被继承并重写的父类方法
父类自己的实现方法
fu
重写父类playFu
子类自身play
父类自己的实现方法
zi

三、向上转型

待补充

四、补充扩展

摘录:https://www.cnblogs.com/fzxey/p/10742635.html

编写Java程序时一般要满足开闭原则。即:对扩展开放,对修改关闭;
高内聚,低耦合: 类与类之间,功能与功能之间,模块与模块之间,功能尽量内聚,不同模块之间,尽量独立。

继承的注意点:

继承的使用

上一篇 下一篇

猜你喜欢

热点阅读