面向对象的三大特征(继承,封装,多态)

继承

生活中的继承:子代继承长辈的精神或物质
代码中的继承:
    多个类抽取其共同点形成的概念,该类就是这多个类的父类(基类,超类)
    子类将拥有父类的所有属性与方法

继承的优点:
    1,节省代码
    2,提高代码的可读性
    3,提高代码的复用率
    
继承的特点:
    1,子类将拥有父类的所有属性与方法,构造函数除外
    2,一个类只能有直接一个父类
    3,一个类没有写明继承关系,默认继承于Object

继承的语法:
    访问权限修饰符 class 子类名 extends 父类名{
    }
    
super:
    1,在子类构造函数中调用父类的构造函数,如果不写,默认调用父类无参构造函数,必须在子类构造函数的第一行
    2,当子类属性与父类属性名一致时,区分是子类属性还是父类属性,加super是父类属性
    3,当子类方法名与父类方法名一致时,调用父类方法,需要使用super调用
    
练习:
    创建一个动物类(Anim),有属性年龄,性别
        方法
            睡觉
                就地睡眠
    创建一个狗类(Dog),使其继承与Anim类.特有属性,姓名,
        特有方法
            吃饭
                吃狗粮
                吃完就地睡眠
            睡觉
                在狗窝睡
    创建一个猫类(Cat),使其继承与Anim类.特有属性,姓名
        特有方法
            吃饭
                吃猫粮
                吃完就地睡眠
            睡觉
                在沙发睡
    创建一个鸟类(Bird),使其继承与Anim类
        特有方法
            吃饭
                吃虫子
                吃完在树上睡觉
            睡觉
                在树上睡
                
重写:
    要求:
        1,在继承关系中
        2,子类重写父类方法,访问权限修饰符不可减小,返回值类型相同,方法名相同,形参列表相同
        方法体不同
重载:
    要求:
        1,在同一个类中
        2,方法名相同
        3,形参列表必须不同

封装

作用:将东西进行包装

优点:
    1,降低代码耦合度
    2,保护内部
    3,方便使用

java任何一处都体现了封装性
    int a = 10;
    String s = "hello";
    int[] nums = {11,2,3,4,5};
    方法中封装这一段代码
    类中方法,属性,构造函数
    java文件中封装多个类
    一个包中封装多个java文件
    一个项目中封装多个包

作用域:变量和方法的使用范围
访问权限修饰符:
    作用:限定使用范围
    值:
        public                公共的                    整个项目中
        protected            受保护的                当前包中或继承关系中
        默认的                  默认的                当前包中
        private                私有的                    当前类中
        
类:
    私有化属性
    提供两个构造函数,一个无参,一个全参,使用public修饰
    给所有属性提供get与set方法
    重写toString方法(暂时没学,不写)

多态

意义:一个事物的多种展现形态

事的多态:重写与重载
物的多态:
    子类对象转父类对象:没有风险自动转换
        语法:父类名 对象名 = 子类对象;
    父类对象转子类对象:有风险,需强转
        语法:子类名 对象名 = (子类名)父类对象;
    注意:子类对象转换为父类对象,调用重写后的方法,还是执行子类重写的方法

instanceof:判断该对象是否属于该类
    语法:对象名 instanceof 类名

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值