抽象类,常用类

一.多态:--> 一种事物的多种形态|多种表现形式
多态的前提:
类的继承
接口的实现
多态的体现|表现形式:
父类的引用指向子类对象
多态的使用:
父类的引用在调用方法,调用子类中重写的方法

注意:父类引用对子类新增的功能不可用
如果子类中没有重写方法,多态没有意义

多态使用成员:
成员变量:
编译--->运行看父类|左边|类型
成员方法:
编译看父类,运行看子类
编译看类型,运行找对象
编译看左边,运行看右边

二.转型:---> java是一门强类型的语言
基本数据转型: 自动类型提升 强制类型转换
引用数据类型: 向上转型(自动) 向下转型(强制)
小范围类型--->子类
大范围类型--->父类

孔子装爹案例:
class 孔子爹{void teach(){做生意};}
class 孔子{void teach(){论语}; void play(){吃鸡};}
有一个来请孔子爹教学,不巧孔子爹外出了,孔子化妆装成孔子爹的样子,去授课
//向上转型 化妆
KongZiDie k=new KongZi();
k.teach(); //论语
先于学生一起玩游戏,但是孔子爹不会游戏,只有孔子会,需要卸妆变成孔子类型调用play功能
//向下转型 卸妆
KongZi kongzi=(KongZi)k;
kongzi.play();

向下转型:--->当需要调用子类独有功能,需要向下转型

ClassCastException 类型转换异常

避免向下转型转型错误,出现类型转换异常的问题--->instanceof
引用 instanceof 类型
判断前面的引用是否为后面类型的对象|子类对象
如果是,返回true;如果不是,返回false
编译只检查引用的类型与后面的类型是否在一条继承链上,如果是语法就没有错误,编写时不报错(但是运行时出错)
面向对象:
封装: 隐藏内部的实现细节,对外提供公共的访问方式
继承: 子类一旦继承父类,就自动拥有父类的内容+子类的扩展
多态: 结合继承,和方法的重写,封装可以提高代码的复用性和扩展性

三.接口:-->interface(是一种特殊的抽象类,能用接口就用接口)

1.7之前:
静态的公共的常量+公共的抽象的方法
属性:
public static final默认修饰符,可以选择性的省略
功能:
public abstract 默认修饰符,可以选择性的省略
1.8之后:
1.静态方法:接口名字. 使用
2.默认方法:实现类的对象使用
注意:
1.类的继承,接口需要实现
2.抽象方法必须被重写
3.使用接口中的内容:接口需要实现->implements,类要用extends继承
具体的实现类:重写接口中的所有抽象方法+按需新增
抽象的实现类: 按需重写抽象方法+按需新增
4.单继承,一个类只能继承一个类,接口可以多实现,实现了接口,就拥有了接口中定义的功能
5.一个类先继承父类后实现接口,先继承后实现
6.避免实现的多个接口中定义了相同的功能
7.接口可以多继承其他接口,不能是实现接口的(实现:对抽象方法方法体的实现)
8.接口不能实例化
接口的优点: ---> (根据不同的需求:定义类,抽象类,接口,推荐使用接口)
避免单继承的局限性 (推荐使用接口)
提高代码的复用性
解耦:高内聚低耦合
定义规范

四.抽象类:--->被abstract修饰的类
抽象方法:--->被abstract修饰的方法
抽象类中方法没有方法体
必须存在抽象类中

注意:
1.抽象类不能实例化
2.抽象方法必须存在于抽象类中
3.抽象类中可以存在抽象方法,可以存在具体方法(有方法体的方法)
4.通过子类使用抽象类
具体子类:重写抽象父类中的所有抽象方法+按需新增
抽象子类:按需重写抽象方法+按需新增
5.一个抽象方法如果已经被冲写过,就可以不需要再次重写
6.抽象方法必须被重写
7.abstract不能和static,final,private,native一起使用

五.内部类:类中定义类--->一个类中的某个成员,也为一个事物,可以把这个事物定义为一个类,内部的这个类就是内部类
分类:
成员内部类
局部内部类
静态内部类:-->静态的内部类中可以定义静态的内容 ---> 静态的内部类中不可以直接使用外部类的成员,因为内部类是静态的,通过对象使用
私有内部类:-->私有的内部类只能当前的外部类中使用,其他类中无法使用
匿名内部类

成员内部类:内部类定义在外部的成员位置
成员:可以使用成员修饰符 public..static..
类:可以实现接口,继承类

内部类中可以使用外部类中的所有内容的(包括私有的)
成员内部类中不能定义静态的内容除了静态的常量
外部类中通过内部类对象使用内部类中的成员

posted @ 2019-07-14 22:17  八佰伴  阅读(186)  评论(0编辑  收藏  举报