1.代理模式介绍 为某一个对象(委托类)提供一个代理,用来控制对这个对象的访问。 委托类和代理类有共同的父类/父类接口 代理类会对请求做预处理,过滤,将请求分配给指定对象 2.代理模式原则 1.代理类和委托类有共同行为 2.代理类可以增强委托人行为 3.常见代理模式:静态代理,动态代理
1.重写(Override) 从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情
重写(Override) 从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况
1.静态与非静态方法在继承中的应用 (1)静态方法 (2)非静态方法 当把A和B类的test方法的static去掉之后就会出现下图标注的圈,这就表示是重写。 快速生成重写方法的快捷键:control + enter 或 alt + insert会出现如下图所示: 下图当进行方法的
package src.com.qiqi.oop.Demo05;//子public class A extends B { //A继承了B类的方法,并且对方法进行了重写 //重写 @Override //注解:有功能的注释 public void test() { System.out.println("A =>test"); //默认调用父类 }}/*package src.com.qiqi.oop
1.super和this的区别 super调用的是父类的属性或方法,this是调用当前类的属性或者方法。 (1)super和this关于属性的调用 (2)super和this关于方法的调用 (3)代表的对象不同: this:代表本身调用者这个对象 super:代表父类对象
匿名内部类的方式创建 匿名: 没有名字 内部类:写在其他内部的李 匿名内部类:简化代码 把子类继承父类,重写父类的方法,创建子类对象合成一步完成 匿名内部类的最终产物:子类,实现类对象,这个类没有名字 格式: new父类。接口(){ 重复父类
这周学习了继承 JAVA的继承是单继承多实现,只能继承一个父类(如果不继承其他类,默认继承object类 )。但可以实现多个接口 1不能继承的有:构造方法,私有成员 2方法重写:override 3父类的构造方法:新建子类对象时会先新建父类对象,也会先执行父类的构造方法 手动调用父类的有参构造,super( 参
异常注意事项_finally有return语句 如果finally有return语句,永远返回finally中的结果,避免该情况 public static void main(String[] args){ int a = getA(); System.out.println(a); } public static int getA(){ int a = 10; try {
异常注意事项_finally有return语句 如果finally有return语句,永远返回finally中的结果,避免该情况 int a = getA(); System.out.println(a); //定义一个方法,返回变量a的值 public static int getA(){ int a = 10; try { return a;
异常注意事项_finally有returm语句 运行时异常被抛出可以不处理。即不捕获也不声明抛出。 如果 finally有 return语句永远返回 Finally中的结果避免该情况 子父类异常 如果父类抛出了多个异常子类覆盖父类方法时只能抛出相同的异常或者是他的子集。 父类方法没有抛出异常,子
设置线程的名称1.使用Thread类中的方法setName(名字)void setName ( String name)改变线程名称,使之与参数name 相同。2创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字Thread ( String name)分配新的T
子父类的异常:如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。父类所法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出注意:父类异常时什么样,子类异常就什么样父类方法没有
面向对象(OOP) 面向对象&面向过程 面向过程思想: 步骤清晰简单,第一步做什么、第二步做什么...... 面对过程适合处理一些较为简单的问题 面对对象思想: 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过
使用多态的好处 可以让我们的代码更加的灵活,更加简洁 对象的向上转型 父类 public class Fu { public void method(){ System.out.println("父类特有方法"); } } 子类 public class Zi extends Fu{ int num = 20;
又是只能回答概念不能提出具体的实例出来论证所讲的观点(具体实例后面再补充吧) 单一职责原则 单一职责原则是指一个类只负责一个职责,它使得类的职责更单一。这样每个类只需要负责自己的那部分,类的复杂度就会下降。如果职责划分的很清楚,那么代码的维护难度降低。如果将所有功能都放
什么是UML类图 Class Diagram:用于表示类、接口、实例等之间相互的静态关系 虽然名字叫类图,但类图中并不只有类 记忆技巧 UML箭头方向: 从子类指向父类 我相信 很多同学都会有和我一样的想法,认为子类是以父类为基础的,箭头应该父类指向子类 那么我们改如何去记忆呢? 定义子类需
继承父类并实现多个接口 使用接口的时候,需要注意: 1.接口是没有静态代码块或者构造方法的。 2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。 格式: public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB { /覆盖重写所有拍象方法 } 3.如果实现类所实
如何才能知道一个父类引用的对象,本来是什么子类?格式:对象 instanceof类名称这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例
1对象向上转型其实就是多态写法 格式 父类名称 对象名 = new 子类名称; 含义右侧创建一个子类对象把它当做父类来看待使用 向上转型一对是安全的 从小范围转向了大范围 创建了一致猫当做动物看待 没问题 向上转换称为更大范围的动物 对象的向下转
多态的概述 奥特曼是一个对象,这个对象有蓝色形态,也有红色形态,还有其他的各种形态。 一个对象拥有多种形态,这就是:对象的多态性 多态的格式与使用 代码当中体现多态性,其实就是一句话:父类引用指向子类对象。 格式: 交类名称对象名= new子类名称();l或者: 接口名称对
代码当中体现多态性,其实就是一句话:父类引用指向子类对象。格式:父类名称对象名 = new子类名称();或者:接口名称对象名= new实现类名称(); 1直接通过对象名称访间成员变量:看等号左边是谁,优先用谁,没有则向上找 2间接通过成员方法访问成员变量:看该方法属
1.成员变量其实是常量,格式: [public] [static] [final]数据类型常量名称=数据值;注意:常量必须进行赋值,而且一旦赋值不能改变。常量名称完全大写,用下划线进行分隔。I2.接口中最重要的就是抽象方法,格式:[public] [abstract]返回值类型方法名称(参数列表);注意:实现类必须覆盖重写接口
java继承的三个特点: java只支持单继承,不支持多继承 因为比如,一个子类继承了两个父类,到调用的时候 是会报错的,就好比如:老爸让你继承家庭的一些遗产,在这时你继承了两个, 在现实生活中,儿子继承父亲的遗产,后面这个如果你继承了两个类,就报错了 到底哪个才是真正的父亲,不可能另一个是你干
继承中构造方法的访问特点: 1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。 2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构 造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,