- 1、语法定义:
抽象类前使用abstract关键字修饰,则该类为抽象类。 - 2、应用场景:
a.某个父类只知道其子类的方法,但不知道子类是如何实现这些方法的。
b.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模版,从而避免了子类设计的随意性。 - 3、作用
限制规定了子类必须实现某些方法,但不关注实现细节。 - 4、使用规则
a.abstract定义抽象类
b.abstract定义抽象方法,只有声明,不需要实现
c.包含抽象方法的类是抽象类
d.抽象类中可以包含普通的方法,也可以没有抽象方法
e.抽象类不能直接创建,可以定义引用变量
Telephone.java(抽象类)
package com.imooc;
public abstract class Telephone {
//抽象类中只定义方法,而不需要实现方法
public abstract void call();
public abstract void message();
}
SmartPhone.java(抽象类的子类)
子类自动重写父类的方法,然后实现具体方法
package com.imooc;
public class SmartPhone extends Telephone {
@Override
public void call() {
// TODO Auto-generated method stub
System.out.println("通过语音打电话");
}
@Override
public void message() {
// TODO Auto-generated method stub
System.out.println("通过语音来发短信");
}
}
Initail.java(方法应用类)
package com.imooc;
public class Initail {
public static void main(String[] args) {
// TODO Auto-generated method stub
//抽象类的父类引用
Telephone tel2 = new SmartPhone();
tel2.call();
tel2.message();
}
}
网友评论