代码编织梦想

最近的任务实在是太太太太太多啦,已经好几个通宵了,这一章内容太多,就简单写了几个注意的小点备忘一下

1. final关键字可以修饰成员变量,成员方法,还可以修饰类

它的意思是最终的意思,final修饰过的成员变量是一个常量,修饰过的成员方法不不允许被更改。修饰过的类不能被继承,总结起来就是final修饰过的就是不能被改变了

2.final,finally,finalize的区别?

final:表示最终,终态(不能被更改的)它可以修饰类,那么该类不能继承

它可以修饰成员方法,成员方法不能被重写,它可以修饰变量,此时这个变量是一个常量。常量的分类:

字面值常量:字符串常量,字符常量,自定义常量(final修饰的)

pubic final int num = 100 ;

3.猫狗案例的,创建猫的对象

Cat c = new Cat() ;   

猫是猫   

Animal a = new Cat() ;

猫属于动物   

多态的前提:   

1)必须有继承关系   子类继承父类,存在一些特点   

2)必须有方法重写   子类继承父类,方法重写的目的,举例:动物吃的方法,每一个具体动物吃的东西不一样,所有必须要方法覆盖   

3)就是必须有父类的引用指向子类对象 (向上转型)   父类名  fu = new  子类名() ;   通过父类对象的创建是通过子类在堆内存新建了了一个对象,由于子类又继承了父类   

4.多的前提就是继承和方法重写,所以访问成员变量和方法时会被子类方法覆盖掉.   

5.多态的好处:   可以提供代码的复用性:继承保证   可以提高的代码的扩展性:由多态保证...  (父类的引用指向子类对象).       

一、多态的弊端:   父类引用指向子类对象,   通过父类的引用调用子类特有功能,不能调用....   解决多态的弊端可以向下转型   不过可能会出现运行错误       

 二、向上转型就是父类引用指向子类对象   向下转型就是子类引用指向父类对象   

 三、被abstract 修饰的类称为抽象类,抽象类不能被实例化   抽象类里面不一定有抽象方法但是有抽象方法一定是抽象类   我的理解抽象类就是对类的一种规范,必须让你写出几种方法内容   

四、抽象类的成员特点:   成员变量:   可以是变量,也是一个常量   构造方法:可以有无参,可以有有参,作用:给对象进行初始化的.   成员方法:可以有抽象方法,还可以有非抽象方法..   

五、一个类中没有抽象方法也可以定义成一个抽象类  

六、 abstract 和private   abstract 和final   abstract和static冲突,不能共有

   七、抽象类被继承后需要实现父类中的方法,而private只能在本类找那个调用   

10 接口:体现的是事务的扩展性功能(额外动作,后天经过学习等等)   

接口格式(标识符:类,接口:见名知意)   

interface  接口名{   //抽象功能   public abstract void jump() ;       }   

接口的特点:不能实例化   

接口的子实现类:实现类 (具体的实现类)   

class 类名+impl implements 接口名{       }   

接口的子类如果是抽象类:没有意义,不能实例化   

接口多态(最多)   抽象类多态(比较多)   

具体对象的创建(经常会使用)   接口中的方法不能有方法体,只能是抽象方法   

11.接口成员的特点:  

 成员变量:是一个常量,不能更改,并且默认的修饰符   

public static final:   

构造方法:接口不存在构造方法   

成员方法:都是抽象方法   

默认的修饰符:public abstract   接口也是对类的一种规范   

接口和接口之间的关系:继承关系   

12. 抽象类是用来捕捉子类通用特性的.他不能被实例化,只能被用为子类的超类   

抽象类是被用来创建继承层级的子类模板   

接口是抽象方法的集合.如果一个类实现了某个接口,那么这个类就继承了这个接口的所有抽象方法.这就像契约模式,如果实现了这个接口,那么久必须确保使用了这些方法   接口只是一种形式,接口自身不能做任何事情.   

13. 代码块:在Java中,使用{}括起来的代码成为代码块   根据其位置和声明的不同,可以分为 

 局部代码块:局部位置,用于限定变量的生命周期   

构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造代码块。  

 作用:可以把多个构造方法的共同代码放在一起。   

静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰   作用:一般是对类进行初始化  

 14. 静态代码块>构造代码块>构造方法   

15. 继承的好处:继承就是为了多态,重用的代码用组合不用多态解决   

16. 继承中子类不能用静态的方法重写父类的非静态方法   同理子类不能用非静态方法重写父类中的静态方法   子类重写父类的方法,子类方法的访问权限>=父类方法的访问权限.   

17.方法重载和方法重写在英文中分别是overload和override,在学习Java的过程中总是分不清重写和重载这两个方法,实际上,这两个方法还是有很大的差别的,重载和重写这两个方法虽然名字有些类似,但他们之间有很少的联系,除了二者都是发生在方法之间,并要求方法名相同之外,没有太大的相似之处。重载主要发生在同一个类的多个重名方法之间,重写则发生在子类和父类同名方法之间,当然父类方法和子类方法之间也可以发生重载,因为子类会获得父类的方法,如果子类定义了一个与父类方法有相同的方法名,但参数列表不同的方法,就会形成父类方法和子类方法的重载。   

方法重载要遵循的原则:两同一不同   

(1)两同:同一个类中的方法名相同   

(2)一不同:参数列表(个数或类型)不同   至于方法中的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。   

方法重写要遵循的原则:两同两小一大   

(1)两同:方法名相同、形参列表相同   

(2)两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等   

(3)一大:是子类方法的访问权限应比父类方法的访问权限更大或相等

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xingrengengzai/article/details/131027891

springmvc-爱代码爱编程

SpringMVC 1. SpringMVC定义1.1. MVC定义1.2. SpringMVC定义1.3. MVC和SpringMVC的关系 2. SpringMVC学习-创建3. SpringMVC学