标签:java
1.文字阐述静态代码块的作用。
静态代码块在类加载的时候执行,而
且只执行一次。
*/
/*
class Static {
static {
System.out.println("static");
}
public Static(){
System.out.println("()");
}
}
class Demo {
public static void main(String[] arge){
try {
Class.forName("Static");
Class.forName("Static");
} catch (Exception e){
e.printStackTrace();
}
}
}
*/
/*
2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?
答:
构造代码块调用顺序优先于构造方法,和方法的声明位置无关。
构造代码块作用:a.可以存放多个构造方法的共同代码,提升代码的重复性
b.对成员变量初始化
*/
/*
class Static {
static {
System.out.println("static");
}
public Static(){
System.out.println("()");
}
{
System.out.println("代码块");
}
}
class Demo {
public static void main(String[] arge){
try {
Class.forName("Static");
Class.forName("Static");
} catch (Exception e){
e.printStackTrace();
}
new Static();
}
}
3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?
答:
类加载时默认执行静态代码块。
手动控制类加载使用Class.forName("classname"),默认加载类时,执行代码块。
4.定义类Person,Man,Woman形成继承关系
*/
/*
class Person {
}
class Man extends Person {
}
class Woman extends Person {
}
5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?
答:
抽象方法是:没有方法体的方法。必须使用abstract修饰。
抽象类:含有抽象方法的类,就是抽象类,抽象类也必须要使用abstract修饰。
抽象类有构造函数,并且可以被重载
*/
/*
abstract class Person {
Person () {
}
Person (String a) {
System.out.println(a);
}
}
class Man extends Person {
Man (){
super("baba");
}
}
class Demo {
public static void main(String[] arge){
new Man();
}
}
6.抽象修饰符有哪些非法组合?并给出合理的解释?
答:
abstract + static 是非法的修饰符组合。static修饰可以更方便的访问公共的属性,抽象的直接访问时没有任何意义的
abstract + final 是非法的修饰符组合。final修饰的就是最终的,不能更改,抽象需要去实例化的,需要操作
abstract + private是非法的修饰符组合。抽象类需要子类继承来实例化,私有是不能继承的
7.super和this作用以及用法以及注意事项?
答:
super : 超类,作用方面类似于this.
super(...) : 访问超类的构造函数.只能用在第一行。默认是super();
this是只想对象自身的引用
this:指向对象自身的引用。
this(...)表示的是调用当前类的构造函数.只能用在第一行。默认this();
8.定义接口
1.IWhite
2.IRich
3.IBeanti
4.定义类,实现以上三个接口.(WomenStar)
5.定义土豪类(EarchRicher.marring(...))
*/
/*
5.定义土豪类(EarchRicher.marring(...))
答:
* 土豪征婚案例,征婚对象要求至少具备白富美三种特性,土豪征婚使用匿名内部类对象实现.
interface IWhite {
}
interface IRich {
}
interface IBeanti {
}
interface IWhiteIRichIBeanti extends IWhite,IRich,IBeanti {
static final String name = "a ";
public abstract void show();
}
class WomenStar implements IWhiteIRichIBeanti {
public void show(){}
}
class EarchRicher {
IWhiteIRichIBeanti bfm;
public EarchRicher(IWhiteIRichIBeanti bfm) {
this.bfm = bfm;
}
public void showName(){
bfm.show();
}
}
class Demo {
public static void main(String[] arge){
IWhiteIRichIBeanti bfm = new IWhiteIRichIBeanti(){
public void show(){
System.out.println("我叫王美丽");
}
};
EarchRicher man = new EarchRicher(bfm);
man.showName();
}
}
标签:java
原文地址:http://nietzsche.blog.51cto.com/3680287/1773650