Java基础知识之面向对象(2)

抽象类

1.包含一个抽象方法的类为抽象类,抽象类要用abstract修饰,不能直接使用其实例化对象,可以声明对象。
ps:什么是抽象方法呢?就是一个只被定义,而没有实现的方法(public abstract void fun();),就是没有{….方法体…}的方法。
2.抽象类是给子类继承的,继承抽象类的子类必须覆写所有抽象方法,否则该子类还是抽象类,不能实例化对象。
3.抽象类当然不能用final修饰
例:

/**
 * 定义抽象类,用abstract修饰
 * 至少包含一个抽象方法*/
public abstract class AbstractClass {
    //抽象方法,没有方法体
    public abstract void fun();
}

接口

1.接口是一个特殊的类,Java中的接口是由抽象方法和全局常量组成。
例:

/*
 * 定义一个接口
 * 由全局常量和抽象方法组成
 * */
public interface InterfaceDemo {
    public static final String INFO = "CHNA";//全局常量
    public abstract void fun();//抽象方法
}

2.接口是供一个子类实现的,用implement关键字
例:

/*
 * 实现接口 InterfaceDemo
 * 要覆写接口的全部抽象方法
 * */
public class ImplementInterfaceDemo implements InterfaceDemo {
    @Override
    public void fun() {}
}

3.在定义接口时,内部的全局常量的修饰词public static final 关键字可以省略,内部的抽象方法的修饰词public abstract关键字可以省略
4.一个类若既有继承又有实现,则先继承,在实现。
例:

class A extends 类名称 implements 接口名称1,接口名称2{}

5.一个抽象类可以实现多个接口,但一个接口不可以继承抽象类,可以实现多个接口
抽象类与接口的区别:
技术分享
技术分享

匿名内部类

一个对象只使用一次,可以使用匿名对象,如果一个类只使用一次则可以用匿名内部类了。

public interface A {
    public void fun();
}
//实现A接口
class B implements A {
    @Override
    public void fun() {
        System.out.println("Hello World!");
    }
}
class xx{
    public void temp(A a){
        a.fun();
    }
    public void fun1(){
        temp(new B());
    }
}
public class Demo{
    public static void main(String[] args){
        new xx().fun1();
    }
}

若B类只使用一次,则可以用匿名内部类实现上面的代码:

public class X {
    public void temp(A a){
        a.fun();
    }
    public void fun1(){
        temp(new A(){
            @Override
            public void fun() {
                System.out.println("hello");
            }
        });
    }
}

异常

1.Java中对异常的处理机制:扑捉异常,抛出异常
2.异常的处理可以使程序在有错误时,可以继续执行下去
3.异常的处理格式:

try{
    可能出现异常的代码段
}catch(异常类 异常对象){
    处理异常
}catch(异常类 异常对象){
    处理异常
}....
finally{
    异常的出口,不管是否有异常,该段语句都会执行
}

包及访问权限
1.包就是一个文件夹,使用package关键字声明包,需要在一个类文件的第一行
2.程序中使用其他的包,可以重具体位置导入,用import语句表示
3.包的静态导入,若一个类中的方法或者变量全部是静态的,则可以使用静态导入,规则:import static 包名
4.包的访问权限:
技术分享
未完待续。。。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。