A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 挨踢小白 中级黑马   /  2016-11-19 23:42  /  904 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向对象的三大特征  
封装
继承
多态
========================================
继承

继承的概述
子承父业
子类会自动拥有父类所有可继承的属性和方法
子类 extends 父类{}
好处:
1提高代码的复用性  提高开发效率
2 继承的出现 让类与类之间产生关系,多态的前提
java中 继承的特点:
1,只能单继承  不能多继承
2. 多个类可以继承一个父类
3.Java中存在多层继承
4.子类和父类是相对的概念
===================================
子类的成员变量和父类中的成员变量
1.名字不一样。
该是谁就是谁
2 名字一样
使用变量的时候遵循就近原则
先从方法中找 有没有这个变量 有就访问方法中的
否则去成员位置找 有就访问成员变量
否则去父类中找 有就访问父类
===============
S.o.p(sum);50  访问方法中的变量
s.o.p(this.sum);100 访问类中的变量   
s.o.p(super.sum)200 访问父类中的变量
============================
子类中你方法定义跟父类不一样情况
调用哪个方法名 找哪个方法名
现在本类中找 没有去父类找
-----------------------------
子类中方法定义和父类相同
优先访问子类的。(方法的重写)
方法重写:在子类中,存在和父类方法声明
(返回值,方法名,参数列表)一模一样的
这种现象叫方法的重写。
重写方法 作用:
1功能的加强。
沿袭了这个功能 可以做功能的加强
------------------------------
例子:
fu:
s.o.p("打电话")
zi:
s.o.p("打电话");
s.o.p("爆米花")
或者
super.call();
s.o.p("爆米花");
===============================
方法重写的注意事项:
1.子类方法覆盖父类方法时,访问权限必须
大于等于父类方法;
2。父类的private方法,是私有的,不可能被
继承。没有继承就不能被重写。
3.方法声明一模一样。(方法名 返回值类型 参数列表)
总结:当一个类是另一个类的一种时,可以选择继承。
banana is a fruit
cat is a animal;
当觉得继承父类的方法,需要加强的时候,
重写这个方法。
private<默认《public
==============================
private 没有继承。
==============================
抽象
动物中
里面的吃和睡
各种的具体的动物各种吃各种睡,
抽象方法的格式是
权限修饰符 abstract 返回值类型 方法名(参数列表);
例如:public abstract void eat();
如果一个类中 存在了一个抽象方法,该类必须是抽象类。
在class前面加abstract.
例子:
public abstract class animal;
当一个类继承了抽象类 那么必须要重写 抽象类中的抽象方法
当一个方法是一个抽象方法,就一定得写成抽象类。如果
父类有抽象方法,则子类中必须重写方法。
======================================
抽象的特点
1.抽象类和抽象方法要被abstract修饰。
抽象方法必须存在于抽象类中。
2抽象类不可以直接创建对象。
因为没有意义,抽象方法没有任何意义。
3.如果一个具体的类继承抽象类。那么必须重写抽象方法。
如果不重写,那么这个子类还是抽象类。
抽象的方法 需要子类必须重写的。
非抽象的方法 给子类继承去了 让子类沿袭 可以重写可以不重写
抽象类中可以没有抽象方法
什么用 就是为了不让你直接创建对象
abstract不可以和哪些关键字共存?
1 private
2 static
3 final
===========================
抽象类的细节问题:
抽象类是不是作为父类出现?

抽象类中可以有具体方法
抽象方法  要求子类必须重写 否则报错
具体方法  可以让子类继承 可以重写也可以不重写
=======================================
abstract 不能和private共存
private修饰的不能被继承
=======================================
员工类案例
分析  从具体到抽象
实现  从抽象到具体
======================
快捷方法
setter   getter
ctrl+shift+S
鼠标右键 source ---setter---getter
弹出框框 点你要写set get属性的钩钩
=======================
父类 对象优先于子类对象  
======================


5 个回复

倒序浏览
班长,为什么你都6技术分了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
老司机带带我 发表于 2016-11-19 23:54
班长,为什么你都6技术分了

拿黑马币换的
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
挨踢小白 发表于 2016-11-19 23:55
拿黑马币换的

6个黑马币换1技术分?还是8个???
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
老司机带带我 发表于 2016-11-20 00:06
6个黑马币换1技术分?还是8个???

6个黑马币换一个
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马