黑马程序员技术交流社区
标题:
死亡笔记
[打印本页]
作者:
咆哮的JAVA
时间:
2019-6-20 15:36
标题:
死亡笔记
-----------------------------day1-------------------------------------
1.面向对象三大特征之一,使子类可以拥有父类的属性和方法。
2.继承格式
public class 子类 extends 父类
3.继承的优点:
提高代码复用性(多个类相同的成员还可以放到同一个类中)
提高代码维护性
弊端:
类的耦合性增强了,削弱了子类的独立性。
4.继承中变量访问特点:
1)就近原则,局部优先原则
2)子类的局部寻找
3)子类成员变量
4)父类成员变量
5.super.成员变量名-->父类的成员变量
this.成员变量--->本类的成员变量
6.子类中所有的构造方法默认都会访问父类中无参的构造方法。
7.父类的私有属性和私有方法子类不能继承。
private方法不允许被重写
private->默认->protected->public
8.{*号通配符}
------------------------day2--------------------------------------------
1.多态中成员访问特点:
成员变量:编译看左边,运行看左边
成员方法:编译看左边,执行看右边
2.多态优点:提高代码扩展性 缺点:父类的引用无法使用子类扩展的方法。
3.向上转型
父类的类名 父类引用 = new 子类() 自动类型转换
向下转换
子类的类名 子类引用 = (子类的类名)父类类名 强制类型转换
4.instanceof(判断父类是否可以转换为子类)
5.abstract关键字
没有方法体的方法
6.抽象类的特点
抽象类不一定有抽象方法,有抽象方法一定有抽象类
抽象类不能实例化对象
抽象类的子类要么重写抽象方法,要么自己也变成抽象类
7.抽象类成员特点:
成员变量(变量或常量)
构造方法(自类实例化对象使用)
成员方法
存在抽象方法(没有方法体)
8.接口属于一种特殊的类
9.接口的特点:
接口通过interface声明
类与接口之间的关系是实现关系
implements
不能实例化对象
接口的实现类要么重写抽象方法,要么自己变成抽象类
10.接口成员特点:
公有的静态常量
接口中都是公有的抽象方法
接口中没有构造方法
11.类与类:继承,
类与接口:实现,可以实现多个接口,类可以在实现接口的同时继承类
接口与接口:继承,支持多继承机制
-------------------------------多态------------------------------------
多态的概述: 同一个对象 在不同时刻表现出来的不同形态
多态的前提和体现: 有几成实现关系 有方法重写 有父类引用指向子类对象
因为成员方法有重写 成员变量没有 子类有用重写子类的 没有用父类的 必须要重写 要不然掉不到
所以多态成员访问特点 变量 :编译看左边 运行看左边 方法 编译看左边 运行看右边
优点 :提高了代码的扩展性 缺点:父类的引用导致子类的
向上转型 自动类型转换 父类的类名 父类引用 = new 子类();
向下转型 强制类型转换 子类的类名 子类引用 = (子类的类名)父类的引用();
instanceof 判断父类是否能转换子类
---------------------------抽象类---------------------
abstract修饰的类 叫抽象类 没有方法体的的方法需要abstract修饰
public abstract void 方法名(){} 抽象类不一定有抽象方法 但是一个类有了抽象方法 类也必须是抽象类
抽象不能实例化对象 需要继承多态的形式使用它
抽象类的子类要么重写抽象方法 要么自己也变成抽象类
抽象类的成员特点 成员变量 可以是常量也可以是变量
有构造方法 给子类初始化对象的
---------------------------------接口---------------------------------------
接口 行为规范 特殊的类 所有方法都是抽象方法作为一种行为规范
public interface 接口名 接口通过interface关健字声明
类与接口之间的关系实现关系 implements
不能实例化对象
类实现接口后 要不重写接口里面的方法要不加abstract变成抽象类
接口成员变量(常量)默认语句是 public static final 变量类型和变量名 公有的常量
没有构造方法 因为没有变量 都是常量
成员方法默认是抽象方法public abstrac 返回值 方法名 公有的抽象方法(没有方法体)
实例化对象里面可以构造方法是因为他默认 继承object 给它里面super();并不是给接口
一个 实例化类可以继承后 继续实现单个 或多个接口 ,逗号隔开
接口和接口可以继承 也可以继承多个接口 extends 接口名 多个加逗号,
需求能被复用性一部分共有方法的一部分是抽象方法的使用抽象类
都是抽象类使用接口
新追加的功能使用接口 一个子类只能继承一个抽象类 但是可以实现多个接口
继承原来的子类添加新需求的接口 开闭原则 对新增开放 对修改关闭
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2