抽象类
- 1、什么是抽象类?
如果一个类表达的是一种抽象的概念,仅仅作为其他派生类的一个父类,主要定义功能
具体的实现交给其子类去做 - 2、语法
在class前面加上abstract,就是一个抽象类 - 3、抽象类的特点:
(1)抽象方法所在的类必须是抽象类
(2)抽象类不能进行实例化
(3)如果要实现一个抽象类,创建一个子类继承这个抽象类,子类必须重写抽象类里面的所有的抽象方法(除非子类也是一个抽象类)
(4)抽象类可以定义普通方法
(5)抽象类可以定义构造方法
抽象方法:
在返回值前面加上abstract就是一个抽象方法
抽象方法的特点:
只能方法的定义,没有方法体
public class Animal {//普通类
public abstract class Animal {//抽象类
public void eat(){
} //普通方法
public abstract void eat();//抽象方法 只有方法的定义,没有方法的实现
public class Cat extends Animal{
//如果要实现一个抽象类,创建一个子类继承这个抽象类,子类必须重写抽象类里面的所有的抽象方法(除非子类也是一个抽象类)
@Override
public void eat() {
System.out.println("吃鱼");
}
// Animal an=new Animal();//抽象类不能进行实例化
//多态:父类的引用指向了子类的实例化
Animal cat=new Cat();
cat.eat();
//多态
Employee m1=new Manager("李四", 2, 7000, 1000);
System.out.println("姓名为:"+m1.getName()+"id为:"+m1.getId()+"工资为:"+m1.getSalary());//m1.getBonus()不可以,是因为Employee里没有定义,编译时看左边
拓展:常用类会讲到
//1、视频文件
String file="海王.mp4";
//2、获取视频文件的扩展名
//lastIndexOf()获取字符.的下标
int index=file.lastIndexOf(".");
//3、截取字符串、只保留扩展名
String str=file.substring(index+1);
str.toUpperCase()//字母都变成大写