java返回类型使用多态_在Java中有什么方法可以返回多态吗?

在Typescript中,有一个多态返回类型this的概念.

https://www.typescriptlang.org/docs/handbook/advanced-types.html#polymorphic-this-types

例:

export abstract class Animal {

private name: string;

public setName(name: string): this {

this.name = name;

return this;

}

}

export class Dog extends Animal {

private breed: string;

public setBreed(breed: string): this {

this.breed = breed;

return this;

}

}

export class FluffyDog extends Dog {

private fluffiness: number;

public setFluffiness(fluffiness: number): this {

this.fluffiness = fluffiness;

return this;

}

}

export class Main {

constructor() {

const dog: FluffyDog = new FluffyDog()

.setName('Fluffy')

.setFluffiness(10)

.setBreed('Lab');

}

}

Java有什么等效功能吗?

我想出的最好的是:

public abstract class Animal> {

private String name;

public T setName(String name) {

this.name = name;

return (T)this;

}

}

class Dog extends Animal {

private String breed;

public Dog setBreed(String breed) {

this.breed = breed;

return this;

}

}

class Main {

static {

Dog dog = new Dog()

.setName("Fluffy")

.setBreed("Lab");

}

}

或这个:

public abstract class Animal {

private String name;

public T setName(String name) {

this.name = name;

return (T)this;

}

}

class Dog extends Animal {

private String breed;

public T setBreed(String breed) {

this.breed = breed;

return (T)this;

}

}

class FluffyDog extends Dog {

private Long fluffiness;

public T setFluffiness(Long fluffiness) {

this.fluffiness = fluffiness;

return (T)this;

}

}

class Main {

static {

FluffyDog dog = new FluffyDog()

.setName("Fluffy")

.setFluffiness(10L)

.setBreed("Lab");

}

}

第一个似乎只能被继承一次.

在某些情况下,第二个要求显式类型参数.

在Java中有什么方法可以返回多态吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值