Java面向对象 基础知识(三)

2018-07-19  本文已影响2人  环境与方法
  1. 抽象类:包含一个抽象方法的类就是抽象类
    抽象方法:用abstract关键字声明,而未被实现的方法
    抽象类不能实例化,必须通过子类实例化
    抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
    格式:
abstract class Abs {
    private int age;
    public void tell() {

    }
    // 抽象方法
    public abstract void say();
}

class AbsSon extends Abs {
    public void say() {
        System.out.println("I print sth.");
    }
}


public class Extends01 {
    public static void main(String[] args) {
        AbsSon a = new AbsSon();
        a.say();
    }
}
  1. 接口:一种特殊的类,里边全部是由全局常量和公共的抽象方法组成
    接口的格式:
Interface 接口名称{
    全局常量
    抽象方法
}

接口的实现必须通过子类,使用关键字implements, 而且接口可以多实现(多继承)
一个子类可以同时继承抽象和实现接口
一个接口不能继承一个抽象类,但可以通过extends关键字同时继承多个接口,实现接口的多继承

interface Inter1 {
    public static final int AGE = 100;    // 全局常量
    public abstract void tell();          // 公共的抽象方法
}

interface Inter2 {
    public abstract void say();
}

abstract class Abs1 {
    public abstract void print();
}

// 一个子类可以同时继承抽象类和实现接口
class A extends Abs1 implements Inter1,Inter2 {
    public void tell(){

    }
    public void say() {

    }
    public void print() {

    }
}

interface Inter3 extends Inter1,Inter2 {
    // 实现了接口的多继承
}

public class InterfaceDemo {
    public static void main(String[] args) {
        A a = new A();
        a.print();
    }
}

  1. 多态性的体现:方法的重载和重写;对象的多态性
    对象的多态性:向上转型,程序会自动完成
    父类 父类对象 = 子类实例
    向下转型, 强制类型转换
    子类 子类对象 = (子类)父类实例
  2. instanceof 关键字: 判断一个对象到底是不是一个类的实例,布尔型
  3. 泛型(generic):JDK1.5之后新加的功能
    泛型可以解决数据类型的安全性问题,在类声明的时候,通过一个标识表示类中某个属性的类型,或者是某个方法的返回值及参数类型
    格式:
    访问权限 class 类名称<泛型,泛型…> {
    属性
    方法
    }
    对象的创建: 类名称<具体类型> 对象名称 = new 类名称<具体类型>();
  4. 泛型接口:声明泛型接口和声明泛型类的语法类似,也是在接口名称后边加<T>
    格式: interface 接口名称<泛型标识> {}
  5. 泛型方法:泛型方法中可以定义泛型参数,此时参数的类型就是传入数据类型
    格式: 访问权限 <泛型标识> 泛型标识 方法名称(泛型标识 参数名称)
    private <T>T tell(T t)
  6. 泛型数组:在使用泛型方法时,也可以传递或者返回一个泛型数组
    格式: public static <T>void tell(T arr[]) {}
上一篇下一篇

猜你喜欢

热点阅读