1.final
1.1什么是final
是修饰符,表示最终的,无法修改
1.2能做什么
修饰常量,不能二次赋值,必须是显式赋值,一般是叫常量(但常量一般是psf修饰)
修饰的成员方法不能被覆写
修饰的类不能被继承
1.3怎么用
2.多态
2.1相关知识
JVM四大特性:多线程,跨平台,自动垃圾回收,面向对象
面向对象特性:封装,继承,多态,抽象
软件设计的六大原则
单一职责原则:功能单一,一个类只能履行一个职能
里氏替换原则 :能够在父类的地方就一定可以使用子类
依赖倒置原则:面向高层编程,底层依赖高层,高层不依赖高层
接口隔离原则
迪米特法则
开闭原则
2.2多态是什么
多态也叫做多态性,多形态.同一操作与不同的对象有不同的解释,产生不同的结果
简单来讲 父类引用指向子类对象
父类引用:使用父类类型创建的引用类型变量
指向:就是可以找到谁
子类对象:通过子类创建的引用变量
通过父类创建的引用类型变量,可以找到子类的对象
语法: 父类 变量名 = new 子类();
2.3优点
提高程序的灵活度,扩展性,维护性都会得到加强,符合高内聚低耦合理念
2.4缺点
丢失子类特有的属性(父类没有的子类有,都属于子类特有的,无法访问)
2.5怎么使用多态
1.父类没有的,调用不了直接报错
2.父类有的,子类没有的,执行父类的
3.父类有的,子类也有的,除了成员方法之外执行子类,其他的都执行父类的
2.6多态的几种形式
1.直接多态 父类 变量 = new 子类();
2.形参 实参 多态 参数列表用父类声明 调用方法时传入子类对象
3.返回值多态 返回值的类型为父类类型但是返回的是子类对象
简单来说 只要是父类的引用类型变量 保存的是子类对象就是多态 不要在考虑对象时怎么来的
2.7Instanceof
某个对象是否由某个类实例而来
多态在赋值的时候发生,不赋值,不会发生多态
多态:向上转型,子到父,类似于自动类型转换
向下转型:父到子,类似于强制类型转换
必须先发生向上转型,才能发生向下转型
System.out.println(ssSup1 instanceof Sub1);//true or false
2.8隐式多态
this
3.abstract
3.1是啥
修饰符,表示抽象
3.2能干什么
修饰的成员方法 是抽象方法 并且没有方法体({})
修饰的类为抽象类 抽象类不能创建对象
抽象方法必须在抽象类中,用于被子类覆写(或实现)
抽象类中可以没抽象方法
abstract和final可以没有抽象方法
如果一个类继承一个抽象类,需要实现所有的抽象方法
一个抽象类继承一个抽象类 需要实现0~n个抽象方法
3.3怎么用
abstract 方法(类) 用来提醒子类要进行方法的覆写