abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。
抽象类,不能使用new关键字来创建对象,它是用来让子类继承类
抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的
子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类
抽象类及抽象方法定义的基础语法格式如下:
//定义抽象类
[修饰符] abstract class 类名{
//定义抽象方法
[修饰符] abstract 方法返回值类型 方法名([参数列表]);
//其他方法或属性
}
包含抽象方法的类必须定义为抽象类,但抽象类中可以不包含任何抽象方向。另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有是没有方法体的,不可以被调用。如果想调用抽象类中定义的抽象方法,需要创建一个子类,在子类中实现抽象类中的抽象方法。
小提示:
定义抽象方法只需要在普通方法上增加abstract关键字,并把普通方法的方法体(大括号以及大括号中的部分)全部去掉,然后在方法名称后增加英文分号即可,例如“public abstract void shout();”
//定义抽象类Animal
abstract class Animal{
//定义抽象方法shout();
abstract void shout();
}
//定义Dog类继承抽象类Animal
class Dog extends Animal{
//实现抽象方法shout();编写方法体 <----在子类中
public void shout() {
System.out.println("旺旺...");
}
}
//定义测试类
public class Demo02{
public static void main (String[] args) {
Dog dog = new Dog();//创建Dog类的实例对象
dog.shout();//调用Dog对象的shout()方法
}
}
抽象类:
1.不能new这个抽象类,只能靠子类去实现它;约束!
2.抽象类中可以写普通的方法
3.抽象方法必须在抽象类中
抽象的抽象:约束~
存在的意义 抽象出来 提高开发效率
感谢观看!!!