abstract抽象类和抽象方法     DATE: 2024-04-28 02:32:09

abstract抽象类和抽象方法

/

**

* 测试抽象abstract类和抽象方法

* 抽象类是抽象抽象一种规范 通过空的抽象方法规范了子类必须要实现的功能

* 抽象类只能用来被继承

* 每个子类必须要重写抽象方法 实现抽象类规定的这些功能才能被创建

*/

public abstract class TestAbstract {

//抽象类用abstract修饰 类中含有抽象方法时该类必须定义成抽象类

public abstract void turnOn();

//抽象方法不加方法体{ } 用abstract修饰

//这条抽象方法规定 :设备必须要有启动方法 每个子类必须实现启动方法才能创建

public abstract void turnOff();

//这条抽象方法规定 :设备必须要有关闭方法 每个子类必须实现关闭方法

int price;

//抽象类内可以有普通属性和普通方法

String name;

public void print(){

System.out.println(name+price);

}

public TestAbstract(int price, String name) {

//抽象类的构造方法不能用来new对象(实例化) 可以被子类调用super

this.price = price;

this.name = name;

}

public TestAbstract(){ }

//无参构造方法和有参构造方法构成重载overload

}

class Radio extends TestAbstract{

//定义class radio继承TestAbstract 时就会报错 要求实现方法

@Override

public void turnOn() {

System.out.println("Radio.turnOn");

}

//每一个子类都需要重写父类的抽象方法 实现方法后才可以创建

@Override

public void turnOff() {

System.out.println("Radio.turnOff");

}

public Radio(int price,String name){

super(price, name);

//调用抽象类的构造方法

}

}