JAVA学习笔记DAY5(面向对象)

1· static 

static 表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量
 被static修饰的成员变量,叫做静态变量。 特点:被该类所有对象共享  不属于对象,属于类。随着类的加载而就加载,优先于对象存在。
  调用方式: 类名调用(推荐),对象名调用
  被static 修饰的成员方法,叫做静态方法。   特点:应用于工具类

2· 封装

封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为
         什么是继承,继承的好处: 继承是面向对象三大特征之一,可以让类跟类之间产生父子的关系。提高代码的复用性; 子类可以在父类的基础上,增加其它功能
                继承后子类可以得到父类的属性和行为

3·Java只支持单继承,不支持多继承,但支持多层继承; Java中所有的类都直接或间接继承于Object类

4·继承中 构造方法不能被继承的原因: 构造方法与继承类的类名不同

 成员变量(私有的需要用 get()和set()方法间接使用) 都可以继承

 成员方法 (私有的不能继承)

在继承中,顶级父类会创建一个虚方法表,包含(非private,非static,非final),会传递给下一级,下一家会在此虚方法表基础上添加自己的类方法.(优化运行速度)

5·成员变量的访问特点: 就近原则:会优先调用最近的变量(可以去调用父类)

6·方法重写:当父类方法无法满足子类需求时,需要重写。在继承体系中,子类出现和父类一样的方法声明,就称子类重写父类方法.   注意: 子类访问权限必须大写等于父类,只有被添加到虚方法表中的方法才能被重写。

7·构造方法的访问特点: 父类中的构造方法不会被子类继承

子类中的所有构造方法默认先访问父类中的无参构造,再执行自己的构造方法

 原因: 子类在初始化时,可能会用到父类中的数据,如果父类未完成初始化,子类将无法使用父类的数据 ,子类在初始化之前,一定要调用父类构造方法先完成父类数据空间的初始化

8·多态的优势:方法中,使用父类型作为参数,可以接收所有子类对象

 多态的弊端: 不能调用子类的特有功能. 原因:在调用成员方法时,会先检查左边的父类有无这个方法,没有直接报错;

9·JDK14后有一个新特性, 先判断a是否为Dog类型,如果是,则强转为Dog类型,转换后变量名为d;

Animal a=new Dog();
  if(a instanceof Dog) {
      Dog d=(Dog) a;  
        d.lookHome();
 //JDK14以前

//JDK14以后
if(a instanceof Dog d){
    d.lookHome();

10·this,super使用总结

this: 理解为一个变量,表示当前方法调用者的地址值

 访问本类构造方法 this();

 super:代表父类存储空间;

StringBuilder 中的append方法可以添加任何类型数据

11·

多态:同类型的对象,表现出的不同形态
表现形式: 父类类型 对象名称=子类对象
多态的前提: 有继承关系;  有父类引用指向子类对象;  有方法重写
多态调用成员的特点: 变量调用 : 编译看左边,运行看左边
                        方法调用:编译看左边,运行看右边
    多态的优势: 在多态形式下,右边对象可以实现解耦合,便于扩展和维护
                定义方法时,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值