一、class
java
1、抽象类中可以有抽象的方法,不需要实现
2、抽象类中也可以有非抽象的方法,需要具体实现
3、抽象类中可以有常量及变量
4、抽象类之间可以相互继承
5、抽象类的成员可以被private、public、protected所修饰
6、抽象中可以有静态方法
7、抽象类可以实现interface,即可以重写interface中的方法,也可以不实现,由抽象类的子类去实现
8、抽象类和interface一样,不可以实例化
//interface A
public interface A {
default int hello(){
return 1;
}
void detail();
}
//抽象类B,没有实现A中的detail()方法
public abstract class B implements A{
static final String name = "test";
int age;
protected int id;
private String addr;
void get(){
System.out.println("get");
}
abstract void set();
static void say(){
System.out.println("hello world");
}
}
//实现类C 实现了A中的detail方法,也实现了B中的set方法
public class C extends B{
@Override
public void detail() {
}
@Override
void set() {
}
}
二、typescript
大体上和java一样,稍有不同
1、抽象类实现interface,需要实现interface中的方法,而抽象类的子类不需要重写
2、抽象类可以使用intanceof,interface不行
3、class的用法也大致相同
interface A{
say(): void;
hello(): void;
}
abstract class B implements A{
say(): void { //抽象类实现接口,需要实现其中的方法
}
hello(): void {
}
protected name: string;
public abstract get(): void;
set(): void{
console.log("set")
}
private age: number
male: 'man'
static main(): void {
console.log("main")
}
}
class C extends B{
get(): void { //子类只用实现抽象类中的抽象方法
}
}
console.log(B.main())
console.log(new C() instanceof B)
本文探讨了Java和TypeScript中抽象类与接口的使用,包括它们的相似之处和不同点。在Java中,抽象类可以包含抽象方法、非抽象方法、常量和变量,并可以实现接口。而在TypeScript中,抽象类实现接口时必须实现所有方法,且支持使用instanceof操作符。通过示例代码,展示了如何在继承和实现中应用这些概念。
2123

被折叠的 条评论
为什么被折叠?



