1. 代码块

    1.局部代码块

        在函数内部定义{},

        不能使用static修饰。

        

    2.构造代码块

        也是类的成员,和成员变量和成员函数同级。

        与成员变量先后有关,但与成员函数的先后无关。

        构造对象时,先调用构造代码块,然后是构造函数。


    3.静态代码块

        构造代码块 + static修饰符。

        静态代码块在类加载的时候执行,而且只执行一次。

        手动控制类加载使用Class.forName("classname"),默认加载类时,执行代码块。

        Class.forName(String,boolean initialize,ClassLoader)可以控制加载时是否初始化。

        

2. 继承

    1.将共性的内容进行提取。

    2.很好的进行了重用。

    3.使用的关键字是extends

        class B extends A {....}

    4.java中不能多重继承,只能单重继承。

    5.super : 超类,作用方面类似于this.

        super(...) : 访问超类的构造函数.只能用在第一行。默认是super();

    6.子类重写的方法权限 > 父类的方法权限.(权限可放大,可发扬光大,不能缩小,不能私有化)。

    7.this是只想对象自身的引用

        this:指向对象自身的引用。

        this(...)表示的是调用当前类的构造函数.只能用在第一行。默认this();


3. final(最终)

    1.修饰类,表示类不能被继承。

    2.修饰方法,表示方法不能被重写。

      私有方法可以加final,没有意义,编译通过。(不可能发生)

    3.修饰变量,只能被赋值一次。如果不赋值,编译通不过。


4. abstract(抽象)

    1.没有方法体的方法。必须使用abstract修饰。

    2.抽象方法只能存在于抽象类中。

    3.抽象类也必须要使用abstract修饰。

    4.不能与哪些关键字共存:

    static :static修饰可以更方便的访问公共的属性,抽象的直接访问时没有任何意义的

    final :final修饰的就是最终的,不能更改,抽象需要去实例化的,需要操作 

      private :抽象类需要子类继承来实例化,私有是不能继承的

    5.抽象类有构造方法,可以重载。


5. interface(接口)

     在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。

     面向接口编程,降低耦合度。

     对于接口当中常见的成员:而且这些成员都有固定的修饰符。

         1.全局常量: public  static final

         2.抽象方法: public abstract


6. 定义类Person,Man,Woman形成继承关系。

class Persion {

}

class Man extends Persion {

}

class Woman extends Persion {

}

7. super和this作用以及用法以及注意事项?

super : 超类,作用方面类似于this.

super(...) : 访问超类的构造函数.只能用在第一行。默认是super();

this是只想对象自身的引用

this:指向对象自身的引用。

this(...)表示的是调用当前类的构造函数.只能用在第一行。默认this();


8.定义接口

1.IWhite

2.IRich

3.IBeanti

4.定义类,实现以上三个接口.(WomenStar)

5.定义土豪类(EarchRicher.marring(...))


interface Iwhite {

public void skinWhite();

}

interface IRich {

public void walletRich();

}

interface IBeauti {

public void faceBeauti();

}

// 定义一个白富美接口继承三个接口

interface WhiteRichBeauti extends Iwhite, IRich, IBeauti {

}

//定义一个男土豪类

class RichMan {

public void marry(WhiteRichBeauti woman) {

System.out.println("Find Love!");

}

}

class RichManDemo {

public static void main(String[] args) {

//匿名内部类,面向接口编程

WhiteRichBeauti womanStar = new WhiteRichBeauti(){

public void skinWhite() {

}

public void walletRich() {

}

public void faceBeauti() {

}

};

RichMan man = new RichMan();

man.marry(womanStar);

}

}