Object类、关键字final、接口(interface)

1、Object类

它是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承Object类。因此,Object类是Java类层中的最高层类,是所有类的超类。

换句话说,Java中任何一个类都是它的子类。由于所有的类都是由Object类衍生出来的,所以Oject类中的方法适用于所有类。

public class Person {// 当没有指定父类时,会默认Object类为其父类
…}
上面的程序等价于:
public class Person extends Object{
…}

2、在Java中声明类、属性和方法时,可使用关键字final来修饰。

· final标记的类不能被继承。
· final标记的方法不能被子类复写。
· final标记的变量(成员变量或局部变量)即为常量,只能赋值一次。

3、接口(interface)

 接口(interface)是Java所提供的另一种重要技术,它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有以下两点不同:
·接口里的数据成员必须初始化,且数据成员均为常量。
·接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”。

定义格式:

interface 接口名称 {// 定义抽象类
final 数据类型成员名称 = 常量; // 数据成员必须赋初值
abstract 返回值的数据类型方法名称(参数…);
// 抽象方法,注意在抽象方法里,没有定义方法主体。
}

抽象方法声明的关键字abstract是可以省略的。相同的情况也发生在数据成员身上,因数据成员必须赋初值,且此值不能再被更改,所以声明数据成员的关键字final也可省略。事实上只要记得:(1)、接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;(2)、数据成员必须赋初值

接口是用于实现多继承的一种机制,也是java设计中最重要的一个环节,每一个由接口实现的类必须在类内部复写接口中的抽象方法,且可自由地使用接口中的常量。

利用接口打造新的类的过程,称之为接口的实现(implementation)。

实现格式:

class 类名称 implements 接口A,接口B // 接口的实现
{

}

例:

//声明接口demo
interface demo {
    //声明三个常量
  String name="dongdong";
  int age=18;
  String city="北京";
   //创建抽象方法
  public abstract String show();
}

//继承demo接口
public class demo1 implements demo{
      //复写父接口demo的方法
    public String show(){
        return "他叫"+name+",今年"+age+"岁,来自"+city;
    }
}

public class demo3 {
    public static void main(String[] args) {
        demo1 d=new demo1();
        System.out.println(d.show());
    }

}

接口的扩展格式:

interface 子接口名称 extends 父接口1,父接口2,…
{
… …
}

例:

//声明接口demo
interface demo {
  String name="dongdong";
   //创建抽象方法
  public abstract String show();
}

//声明接口demo
interface demo1 {
  int age=18;
   //创建抽象方法
  public abstract String show1();
}

//接口demo2同时继承demo,demo1
interface demo2 extends demo,demo1{
    String city="北京";
    //创建抽象方法
    public abstract String show2();
     
}

//继承demo2接口
public class demo3 implements demo2{
      //复写父接口demo2的方法,demo2继承demo和demo1,所以要复写demo,demo1,demo2的方法
    public String show(){
        return "他叫"+name;
    }
    public String show1(){
        return ",今年"+age;
    }
    public String show2(){
        return "岁,来自"+city;
    }
}

public class demo4 {
    public static void main(String[] args) {
        demo3 d=new demo3();
        System.out.println(d.show()+d.show1()+d.show2());
    }

}

 

转载于:https://www.cnblogs.com/dongdong-wang/p/6768260.html

你可能感兴趣的:(Object类、关键字final、接口(interface))