抽象类:
抽象类不能被实例化,要想使用只能创建该抽象类的子类,然后让子类重写抽象类中的抽象方法。
- 抽象方法没有方法体(只声明,不实现,具体的实现要由子类实现)
- 抽象类可以包含非抽象方法,也可以包含字段
- 抽象方法必须是pubulic
- 抽象类不能被实例化
- 要用abstract关键字声明抽象类
- 抽象类可以由构造器
- 一个类只能继承一个抽象类
abstract class shape {
private String name;
shape(String name){
this.name = name;
}
abstract public void draw();
final public int a1 = 10;
public void func(){
System.out.println("func");
}
}
class rest extends shape{
public rest(String name) {
super(name);
}
@Override
public void draw() {
}
}
接口
- 接口是抽象类的更进一步,接口中只能含有抽象方法,字段只包含静态变量(final stact)
- .声明一个接口是使用interface关键字的
- 接口中的方法只能是publice
- 接口不能被单独实例化
- 一个类可以实现多个接口
- 接口不能有构造器
- 接口可以继承另外一个接口用extends关键字
interface isShape{
public void fun();
}
interface IsShape extends isShape{
public void fun1();
final public int a = 10;
static public int b = 23;
}
class write extends shape implements IsShape{
write(String name) {
super(name);
}
@Override
public void fun1() {
}
@Override
public void draw() {
}
@Override
public void func() {
super.func();
}
@Override
public void fun() {
System.out.println("dad");
}
}