封装继承多态

本文介绍了面向对象编程的基本概念,包括封装、继承、多态等核心特性,并详细解释了构造函数的作用及属性的管理方式,同时涵盖了抽象类和final修饰符的应用。

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

通过面向对象分析

最佳情况:对象的使用,只用一种代码,

//封装的概念:
内部封装所有不变的代码,对外开放变化的代码
方法封装,封装复杂性,对外开放简单方法
比如:属性,可以让外界删除、修改,取值,那就开放
方法:把所有复杂逻辑封装在方法里。对外开放参数和返回值 
 //构造函数存在的意义:
重要的意义,只需要赋值而不用取值的属性做成私有的,通过构造函数赋值(面向对象的封装)

初始化所有属性(开发规范) 
 //什么时候属性做成开放的:
这个属性可以任意取值赋值 
 //什么时候给属性定义 get set方法
以下情况时:需要用set方法做属性值校验, 需要用get方法处理属性格式 

继承:

父类私有的属性,不会被子类继承

protected 定义的 子类可以使用
public 所有类都能用
//super.属性和this.属性的区别
当子类没有此属性时,super.属性与this.属性一样

当子类有此属性时,super.属性是父类的属性,this.属性是子类的属性

//super的使用:super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问子类的private成员

eg:

public class Car {
        private int site = 4;  //座位数
        Car(){
            System.out.println ("载客量是"+site+"人");
        }
        public void setSite(int site){
            this.site = site;
        }
        void print(){
            System.out.print("载客量是"+site+"人");
    }
}

class Bus extends Car {
    Bus(int site){
        setSite(site);
    }
}

//方法重写的规则:

方法名相同
参数列表相同
返回值类型相同或者是其子类
访问权限不能严于父类


//抽象类和抽象方法:

抽象类不能被实例化
抽象类可以有0~多个抽象方法
非抽象子类必须重写父类的所有抽象方法

//final修饰符

修饰的类,不能再被继承
修饰的方法,不能被子类重写
修饰的变量将变成常量,只能在初始化时进行赋值

实现多态的两种形式:

使用父类作为方法形参实现多态
使用父类作为方法返回值实现多态


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值