多态,继承


由于 我是用为知笔记,记得上课笔记,文件比较多,导到文档中, 就有点乱了,,大家如果感兴趣,可以看一下啊。,,有老师的讲解,及我自己的理解。

1. 多态成员变量访问特点

1. 成员变量

1. 编译看走边,运行看左边

2. 成员方法

1. 编译看左边,运行看右边      方法存在重写(体现了多态的特性)

1. 静态你成员方法

1. 编译看左边,运行看左边

2. 静态 跟类相关,父类引用调用静态,直接找父类静态,静态方法算不上重写,但是现象确实如此

3. 编译的时候,检查父类中有没有,但是 ,运行起来就是动态的了。调用方法的时候,如果子类重写该方法的时候,如果子类重写该方法,就动态绑定到子类的方法上。

4. 编译器:没有对象产生,这个时候是对java语法的检查,所以编译看左边,  左边指的是   多态体现格式中,等号的左边  一般是说父类引用

5. 运行期:

1. 成员变量属于事物的描述信息,不能变,运行看左边

2. 成员犯法,方法存在重写,所以先从子类对象找,运行看右边

3. 静态方法:跟类相关,跟对象没关系,所以是什么类型的就调用那个类型中对应的静态方发

4. 编译看左边,运行看右边

1. 


 

 

父类 构造代码块、构造方法优先于子类的 构造代码块,,不优先于 子类的静态代码块

构造代码块优先于 构造方法

 

1. 

2. 顺序关系

   

1. 代码块

1. 用{}括起来的

2. 分类

1. 局部代码块:用于限定变量的生命周期,及早释放,提高内存利用率

2. 构造代码块:吧多个构造方法中相同的代码放到这里面,没构造方法执行之前,首先执行构造代码块。

3. 静态代码块:吧类的数据进行初始化,仅仅执行一次

3. 顺序:静态代码块——》构造代码块——》构造方法

2. 继承

1. 吧多个类相同的成员提取出来定义到一个类中,然后让多个类和独立的类产生关系,这是多个类具备了这些内同,这个关系,就是继承。

2. 格式 class 子类  extends 父类{}

3. 继承的好处:

1. 提高代码复用性

2. 提高代码维护性

3. 让类与类之间产生关系 这是多态的前提

4. 弊端L

1. 让耦合性增强了,这样某个类的改变会影响其他类

1. 开发原则   高内聚,低耦合

1. 耦合类与类之间的关系

2. 内聚 自己完成某件事的能力

 

 

 

1. java中继承的特点

1. 只能单继承,不能多继承

2. 可以多层继承

1. 注意事项

1. 子类不能继承弗雷德私有成员

2. 子类不能继承弗雷德构造方法,但是可以调用

3. 不雅为了部分功能而去继承

1. 集成的体现  is a

2. 继承成员的关系

1. 成员变量

1. 变量名不一样

2. 变量名相同怎么zhao

1. 就近原则

1. 首先在子类范围的局部范围找,有就使用

2. 在自类成员范围找,

3. 在父类成员范围找

4. 找不到 ,报错

2. 构造方法

1. 子类的构造会默认方法父类的无参构造  super();

2. 父类中没有无参构造怎么办

1. 写一个

2. 通过super()调用父类存在的构造

3. 通过this()嗲用本身其他构造,但是这个构造可以访问父类的构造

3. 成员方法

1. 方法名不一样

2. 如果方法名不一样 调用子类的

1. 成员变量查找顺序

1. 在子类中查找,

2. 在父类中查找

3. 报错

1. final: 最终的

1. 类:不能被继承

2. 方法:不能被重写

3. 变量:修饰之后就是一个常量,只能赋值一次

4. 局部变量 被final修饰:

1. 基本数据类型 数值不能 改

2. 引用数据类型 地制止不能改

final  修饰对象的时候 修饰的是 地址值。

 

 

 

final  修饰对象的时候 修饰的是 地址值。

所以 final Student s=new Student();之后

就不能 s=new Student();

 

 

被final 存放在 方法区

 

 

 

 

 

 

 


父类 构造代码块、构造方法优先于子类的 构造代码块,,不优先于 子类的静态代码块

构造代码块优先于 构造方法

 

1. 

2. 顺序关系

3.     

 

1. ExtendsDemo5.class(方法区)

2. main(栈)

3. Zi  z

4. Fu.class(方法区)

5. Zi.class(方法区)

6. new Zi()

7. super. num:100(堆)

8. num:300(堆)

9. 地址给 Zi z;(堆——> 栈)

10. Zi.class(方法区)

11. show()(栈)

    ,

 

 

 

1. 父亲的私有成员,子类不能继承——父亲私有的不能给儿子

2. 构造方法不能继承————名字不一样  虽然继承不了,但可以通过 super 调用

3. 不能因为部分功能而去做继承

高内聚,低耦合

内聚:完成某个功能的能力

        一个类可以把事情都干完,就不用麻烦别的

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值