JAVA SE(第四天)( 面向对象编程的三大特征)

本文深入解析面向对象的封装、继承和多态三大核心概念,通过实例演示如何实现和利用它们,提升代码复用和灵活性。从继承机制、封装实践到多态优势与转型技巧,带你走进面向对象编程的世界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:赶进度ing。。。。。。。。。。。。。。。。。。。。。。。。


面向对象编程的三大特征

面向对象三大基本特性:封装、继承、多态

继承

public class  子类名  extends 父类名{}

父类:也被称为基类、超类
子类:也被称为派生类

子类具有父类的属性和方法,还可以在子类中重新定义、追加属性和方法

继承:
    优点:提高代码复用性、维护性    
    缺点:让类与类之间产生了关系,类的耦合性增加了,削弱了子类独立性



定义了一个类,没有继承任何父类,在默认情况下,就继承了Object类(任何类的祖宗)。
在子类方法中访问一个变量:

局部变量 → 当前类中成员属性 → 父类中 → 报错
                               没有


this.age 当前子类age
super.age 当前子类的父类age
age    当前方法中局部变量age



new  对象类();     补全 ctrl+alt+v

子类的所有构造函数都会默认访问父类中的无参构造方法,如果父类中没有无参构造方法,必须在子类构造函数第一条加入父类的有参构造函数。
this(); 和 super();    必须写在构造函数第一条


封装

如何实现封装:
    1.修改属性权限为private(私有)
    2.创建getter/setter方法 (设为public(用于属性的读写))
    3.在getter/setter方法中加入属性控制语句。(验证参数合法性)


封装的规则:
    1.将类的某些信息隐藏在类的内部,不允许外部的程序直接访问。
    2.通过该类提供的方法来实现对隐藏信息的操作和访问。

权限修饰符的具体权限

权限修饰符同一个类同一个包不同包的子类不同包的非子类
private(私有)  √       ×          ×            ×
default(默认)  √       √            ×            ×
protected(受保护的)  √       √            √              ×
public(公开)  √       √            √              √  

         

方法重写注意事项:
    1.私有方法不能被重写,父类中私有方法,子类不能继承。
    2.子类方法访问权限不能比父类低(public>protected>default>private)

继承注意事项:
    1.java中类支持单继承,不支持多继承(一个子类不能有两个父类)
    2.java支持多层继承


tips:
    package:
        1.就是文件夹
        2.作用:对类进行分类管理
        3.相同package下类名称不可以重复。

状态修饰符:
    1.final(最终态):
        final关键字,修饰我们的类(无法继承)、成员属性(相当于定义了一个常量,必须先赋值,无法修        
        改)、成员方法(无法重写)
    2.static(静态):
        static关键字,被类的所有对象共享访问


静态变量访问特点: 直接通过类名.   而不是对象名。
    public class Student(){
        public static school =null;
    }
    
    Student stu = new Student();
    Student.shool = "Tsing university"; √
    stu.shool = "Tsing university"; ×


静态方法中:
    1.可以访问静态成员方法,但不能直接访问到非静态方法,
    2.可以访问静态成员属性,但不能直接访问到非静态成员属性。
    
非静态方法:
    可以访问静态成员方法和静态成员属性,也可以访问非静态方法和非静态成员属性


static关键字用途:
  ①方便在没有创建对象的情况下调用(方法、变量),不依赖对象来访问,只要类被加载,就可以通过类名去访问
  ②Constant(常量):常量名称全大写。
  例子:定义常量(不可变)   public static final int CODE_200 = 200;

多态

多态:
    定义:同个对象,在不同时刻表现出来的不同形态。
    
    
    基本条件:
        1.继承或实现(接口概念)的关系
        2.方法的重写(必须父类与子类有相同的方法)
        3.有父类的引用指向子类
    
    
    访问特点:
        1.成员变量:编译看左边,执行看左边
        2.成员方法:编译看左边,执行看右边
        (编译时父类中必须能找到该成员变量和成员方法)

            左边            右边
        Parent  p =  new Child();
   
    
    优缺点:
        1.好处:提高了程序的扩展性
        2.坏处:不能使用子类的特有功能
   
多态的转型:
    1.向上转型:  Animal dog = new Dog();
        从子到父,父类引用指向子类对象
    2.向下转型:  Dog dog2 = (Dog)Animal();
        从父到子,父类引用转向子类对象(父强转子) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cxy好好先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值