美文网首页
abstract 和一点泛型

abstract 和一点泛型

作者: 王古 | 来源:发表于2019-08-06 22:26 被阅读0次

Animal是父类,hippo是子类

Animal ahippo = new hippo();

abstract

  • abstract 类可以扩展(增加子类),但不能直接实例化。抽象类最大的悲哀是没有实体
  • abstract 方法不在声明它的类中实现,但必须在某个子类中重写。

image.png

abstract 应注意的事

  • 抽象类不能直接使用,必须用子类去实现抽象类,然后使用其子类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例,也就是可以使用抽象类来充当形参,实际实现类作为实参,也就是多态的应用。
  • 构造函数和静态函数以及final修饰的函数不能使用abstract修饰符。
  • 如果试图创建一个抽象类的实例就会产生编译错误。
  • 如果一个类是非抽象类却包含一个抽象方法,就会产生编译错误。
  • 抽象类中有构造函数。如果抽象类是父类,需要给子类提供实例的初始化

abstract 关键字和哪些关键字不能共存?

  • final:被final修饰的类不能有子类。而被abstract修饰的类一定是一个父类。
  • private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。而抽象方法出现的就是需要被复写。
  • static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没意义。

https://blog.csdn.net/eff666/article/details/52324985


终极对象object有什么

  • equals()
  • getClass()
  • hashCode()
  • toString()

接口(纯抽象)

多继承


泛型(只在编译有效)

泛型类

[图片上传失败...(image-916ce8-1565101604071)]

泛型接口

//定义一个泛型接口
public interface Generator<T> {
    public T next();
}
当实现泛型接口的类,未传入泛型实参时
  • 未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声明也一起加到类中
  • 即:class FruitGenerator<T> implements Generator<T>{}
  • 如果不声明泛型,如:class FruitGenerator implements Generator<T>,编译器会报错:"Unknown class"
当实现泛型接口的类,传入泛型实参时:
  • 定义一个生产器实现这个接口,虽然我们只创建了一个泛型接口Generator<T>
  • 但是我们可以为T传入无数个实参,形成无数种类型的Generator接口。
  • 在实现类实现泛型接口时,如已将泛型类型传入实参类型,则所有使用泛型的地方都要替换成传入的实参类型
  • 即:Generator<T>,public T next();中的的T都要替换成传入的String类型。
public class FruitGenerator implements Generator<String>

相关文章

  • abstract 和一点泛型

    abstract abstract 类可以扩展(增加子类),但不能直接实例化。抽象类最大的悲哀是没有实体 abst...

  • 泛型方法

    主题 本节主要讲解泛型方法 泛型方法 泛型是反面向对象的一种性质(anti-oop) 本质上是abstract(请...

  • Android中的线程

    AsyncTask 类声明:public abstract class AsyncTask 泛型参数释义:Para...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • 19.泛型和泛型约束(generics,genericConst

    泛型和泛型约束

  • Web笔记-基础加强

    泛型高级应用 自定义泛型方法 自定义泛型类 泛型通配符? 泛型的上下限 泛型的定义者和泛型的使用者 泛型的定义者:...

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • Java 19-5.1泛型

    泛型类定义泛型类可以规定传入对象 泛型类 和泛型方法 泛型接口 如果实现类也无法确定泛型 可以在继承类中确定泛型:

  • JAVA范型<? extends __> <

    目录 一. 泛型概念的提出(为什么需要泛型)? 二.什么是泛型? 三.自定义泛型接口、泛型类和泛型方法 四.类型通...

网友评论

      本文标题:abstract 和一点泛型

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