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