package demo2;
//抽象类
abstract class Shape{
public String name;
public int age;
public void func(){
System.out.println("fafa");
}
public static void func2(){
System.out.println("dafa");
}
public abstract void draw();//抽象方法
}
class Cycle extends Shape{
//子类继承抽象的父类的话需要重写抽象父类所有的抽象方法
@Override
public void draw() {
System.out.println("○");
}
}
//重写父类的抽象方法
class B extends A{
@Override
public void draw() {
}
@Override
public void func() {
}
}
class Rect extends Shape{
@Override
public void draw() {
System.out.println("◇");
}
}
class Triangle extends Shape{
@Override
public void draw() {
System.out.println("△");
}
}
public class TestDemo {
//向上转型
public static void drawMap(Shape shape) {
shape.draw();
}
public static void main(String[] args) {
//抽象类不能实例化
//Shape shape = new Shape();
//抽象类也可以发生向上转型 进一步发生多态
Cycle cycle = new Cycle();
//Rect rect = new Rect();
drawMap(cycle);
}
}