静态代码块、类的继承和接口
1.文字阐述静态代码块的作用。
2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?
3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?
4.定义类Person,Man,Woman形成继承关系。
5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?
6.抽象修饰符有哪些非法组合?并给出合理的解释?
7.super和this作用以及用法以及注意事项?
8.定义接口
1.IWhite
2.IRich
3.IBeanti
4.定义类,实现以上三个接口.(WomenStar)
5.定义土豪类(EarchRicher.marring(...))
----------------------------------------------------------------------------------------------------
-
代码块是类的组成成分之一,和成员变量,成员函数,内部类,并列共同组成类。静态代码块只在类加载的时候执行一次。
-
构造代码块会先于构造函数之前调用,相对于构造函数来说与声明的位置无关。构造代码块的作用:1,提升代码的重用性,可以讲每一个构造函数的相同代码提取出来。2 初始化对象
-
类加载时不一定会执行静态代码块。默认的方式是执行。如果是以Java反射机制调用class对象,则可以手动选择加载或不加载。class.forName("类名",boolean 是否加载);
-
class person
{
}
class man extends person
{
}
class woman extends person
{
} -
抽象方法没有方法体。抽象类是指有抽象方法的类。java教程里说的是抽象类有构造函数,可以被重载
-
private abstract是非法的,如果不能被继承则没有办法被重写
abstract final是非法的,final不可以被修改,不能被修改则不能被继承者重写
abstract static是非法的,static是静态的在类加载的时候就已经存在方便直接用类访问,abstract没有意义,访问无效
-
super是指向超类对象的指针,this是指向本对象的指针。super()默认出现在一切对象构造函数的第一行表示创建超类对象。super(..)和this(..)都只能用在构造函数的第一行,且只能二选一。
-
interface IWhite
{
}
interface IRich
{
}
interface IBueaty
{
}interface IAll extends IWhite,IRich,IBueaty
{
} -
public class womanStar implements IAll{
}
-
class EarnRicher{
public void marry(IAll woman){
}
}
public static void main(String[] args){
womanStar star=new womanStar()
new EarnRicher().marry(star)
}