Java面向对象6--抽象类

1.abstract

抽象类用于,子类继承父类,父类的方法没有实际意义的时候,但方法必须写方法执行语句,这时就可以使用抽象类。

方法没有具体的执行语句,所以可以用abstract修饰,变为抽象方法,因为没法执行抽象方法,所以该类也得声明为抽象类。

注意事项:

1.当方法为抽象类,则该类也必须为抽象类。并且当子类继承时,必须对抽象类进行实现。

2.抽象类不可实例化,抽象类只能被继承。

作用:子类必须实现父类的抽象方法,相当于对子类进行了一个“规范”

例如:

abstract class Person {
    public abstract void run();
}

2.面向抽象编程

定义:这种尽量引用高层类型,避免引用实际子类型的方式,称之为面向抽象编程。

使用抽象类去引用子类型,调用者不需要管子类如何实现具体方法。

本质:

1.上层代码只定义规范(例如:abstract class Person);

2.不需要子类就可以实现业务逻辑(正常编译);

3.具体的业务逻辑由不同的子类实现,调用者并不关心。

注意事项:

1.引用高层类型时,子类中自定义的方法不会被引用,只会引用到父类中的方法。

例如:

public class AbstractTest {
   public static void main(String[] args){
    Person s = new Student();
    //只能引用person中存在的方法
    s.run();
    //s.name();  不存在
   }
}

abstract class  Person{
  public abstract void run ();
}

class  Student extends Person{

  @Override
  public void run() {
    System.out.println("Student.run");
  }

  public void name(){
    System.out.println("student.name");
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值