首页 > 其他分享 >class<T extends interface> 或 class<T extends abstract class>

class<T extends interface> 或 class<T extends abstract class>

时间:2023-08-16 21:33:28浏览次数:39  
标签:System class println test public out

package com.java3y.austin.test;


abstract class A{
    public abstract void test();
}

class B extends A{
    B(){
        System.out.println("B的构造函数");
    }

    @Override
    public void test(){
        System.out.println("B的test函数");
    }
}

class C extends A{
    C(){
        System.out.println("C的构造函数");
    }

    @Override
    public void test() {
        System.out.println("C的test函数");
    }
}

    class D<T extends A>{
    T t;
    D(){

    }
    D(T t){
        this.t = t;
        System.out.println("D的有参构造函数");
    }
    public void test(T t) {
        System.out.println(t.getClass());
        System.out.println("D的test函数");
    }
}

public class Demo {
    public static void main(String[] args) {
//        D ad = new D<>();
        D<A> ad = new D<>();
        ad.test(new B());
        ad.test(new C());
    }
}

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
类型通配符一般是使用 ? 代替具体的类型参数
要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。
泛型作用:

  • 参数化数据类型,提供编译时数据类型安全检测机制

泛型参数在编译和运行时候的状态?

标签:System,class,println,test,public,out
From: https://www.cnblogs.com/jishaling/p/17636258.html

相关文章

  • jquery操作类和className操作类的区别
      ......
  • 《深入理解Java虚拟机》读书笔记:Class类文件的结构
    Class类文件的结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的的程序存储格式——字节码(ByteCode),从而实现了程序的......
  • python中function使用class调用和使用对象调用的区别
    问题在python中,class中函数的定义中有一个特殊的self指针,如果一个函数有一个self参数,通常意味着这是一个非静态函数,也就是调用的时候第一个参数是对象指针,只是这个指针是调用这个函数时由python来自动填充。tsecer@harry:catcls_mth.pyclasstsecer():defharry(self):......
  • 关于 SAP UI5 框架代码中的 Metadata.createClass
    这段代码定义了一个名为Metadata.createClass的函数,用于在SAPUI5框架中创建类并添加元数据信息。我将逐行解释这段代码的含义和作用。/***@since1.3.1*@private*/Metadata.createClass=function(fnBaseClass,sClassName,oClassInfo,FNMetaImpl){这是一个......
  • ClassPathResource使用简介
    ClassPathResource使用简介使用Spring的ClassPathResource来读取maven项目resource下的文件一般来说,我们项目的配置文件及静态资源都会放置在resources目录下。有时我们在项目中使用到resources目录下的文件,这时我们可以使用Spring下的Resouce接口来读取。具体代码如下Resourceres......
  • 类(class)和包
    第5章类和包5.1简单类和无参方法在Scala中,类并不声明public;一个源文件中可以包含很多类,并且可以都是public级别在使用public级别的对类时,直接实例化对象就行了classCourse(valcourseName:String,varcourseNum:Int){vardesc:String="Scala编程"}在调......
  • TestNG注解-方法注解(1,BeforeMethod和AfterMethod 2,BeforeClass和AfterClass 3,BeforeSu
    packagecom.course.testng;importorg.testng.annotations.*;publicclassBasicAnootation{//最基本的注解用来把方法标记为测试的一部分@TestpublicvoidtestCase1(){System.out.println("这是测试用例1");}@Testpublicvoidt......
  • [React Typescript] Generics in Class Component
    interfaceTableProps<T>{rows:T[];renderRow:(row:T)=>ReactNode;}exportclassTable<T>extendsReact.Component<TableProps<T>>{render():ReactNode{return(<table><tbody>......
  • 论文解读(TAT)《 Transferable Adversarial Training: A General Approach to Adapting
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:TransferableAdversarialTraining:AGeneralApproachtoAdaptingDeepClassifiers论文作者:HongLiu,MingshengLong,JianminWang,MichaelI.Jordan论文来源:ICML2019论文地址:download 论文代码:download......
  • 谷粒商城报错:java.lang.IllegalStateException: Failed to load property source from
    遇到这种问题如果检查了配置文件没有出错可以尝试打开target文件,去找配置文件,查看是否为空或者中文乱码,一般情况下删除中文注释就可以,因为这个文件的编码格式是GBK,项目的编码格式是UTF-8,注释乱码,导致编译失败。还有另一种做法就是更改编码。......