java基础第五天_静态代码块、类的继承和接口

1.文字阐述静态代码块的作用。


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

 

2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?


构造代码块调用顺序优先于构造方法,和方法的声明位置无关。

构造代码块作用:a.可以存放多个构造方法的共同代码,提升代码的重复性

                b.对成员变量初始化

 

3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?


类加载时默认执行静态代码块。

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

 

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


class Persion {

 

}

 

class Man extends Persion {

 

}

 

class Woman extends Persion {

 

}

 

5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?


抽象方法:没有方法体的方法。必须使用abstract修饰。

抽象类:含有抽象方法的类,就是抽象类,抽象类也必须要使用abstract修饰。

抽象类有构造函数,并且可以被重写

 

6.抽象修饰符有哪些非法组合?并给出合理的解释?


abstract + static 是非法的修饰符组合。static修饰可以更方便的访问公共的属性,抽象的直接访问时没有任何意义的

abstract + final  是非法的修饰符组合。final修饰的就是最终的,不能更改,抽象需要去实例化的,需要操作

abstract + private是非法的修饰符组合。抽象类需要子类继承来实例化,私有是不能继承的

 

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


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

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

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

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

 

8.定义接口

(1)IWhite

(2)IRich

(3)IBeanty

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

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

 

 

interface Iwhite {

    public void skinWhite();

}

 

interface IRich {

    public void walletRich();   

}

 

interface IBeauty {

    public void faceBeauty();

}


interface WhiteRichBeauty extends Iwhite, IRich, IBeauty {

 

}

  

class RichMan {

    public void marry(WhiteRichBeauty woman) {

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

}

}

 

class RichManDemo {

    public static void main(String[] args) {

 

        WhiteRichBeauty womanStar = new WhiteRichBeauty() {

            public void skinWhite() {

            }

 

            public void walletRich() {

            }

 

            public void faceBeauty() {

            }

        };

 

    RichMan man = new RichMan();

    man.marry(womanStar);

    }

}


你可能感兴趣的:(java,接口,abstract)