美文网首页
Java面向对象 基础知识(三)

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

作者: 环境与方法 | 来源:发表于2018-07-19 21:27 被阅读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[]) {}

    相关文章

      网友评论

          本文标题:Java面向对象 基础知识(三)

          本文链接:https://www.haomeiwen.com/subject/nnurpftx.html