Java入门(8)

抽象类

抽象方法与抽象类

(1)概念
抽象方法:就是用abstract关键字修饰,并且没有大括号,直接分号结束的方法。
抽象类:定义了抽象方法的类或者用abstract 关键字修饰的类就是抽象类。
(2)抽象类和抽象方法的语法格式
①抽象类语法格式:
「权限修饰符] abstract class 类名
{ 成员变量;
成员方法;
构造方法;
抽象方法
}
②抽象方法语法格式:
例如:
[访问修饰符] abstract 返回值类型 方法名(参数表);
public abstract void show();
(3)抽象类概述
①抽象类可以有成员变量、成员方法以及构造方法。
②抽象类可以有抽象方法,也可以没有。
③拥有抽象方法的类必须是抽象类。
④抽象类的意义不在于实例化而在于被继承,若一个类继承自抽象类必须重写抽象方法,否则该类也是抽象类。因此抽象类对子类具有强制性和规范性,这也叫作模板设计模式。
(4)课堂小案例

abstract class Animal{
     String str;
     Animal(String s){
           str=s;
           abstract void eat()//定义抽象方法
      }
     class Horse extends Animal{
           String str;
           Horse(String s){
           super(s);    //调用父类的构造方法
      }
      void eat({    //重写父类的抽象方法
           System.out.println("马吃草料!");
      }
class Dog extends Animal{
      String str;
      Dog(String s){
           super(s);void eat({
           System.out.println("狗吃骨头!");
      }
}
public class Test{
      public static void main(String[ ] args){
           Animal h=new Horse("马");
           Animal d=new Dog("狗”);
           h.eat();
           d.eat();
      }
}

输出结果为:
马吃草料!
狗吃骨头!
上述例子说明:在程序设计中,抽象类一定是某个类或某些类的父类;若干个抽象类的子类要实现一些同名的方法。

对比抽象类与最终类

(1)最终类的特点
①最终类是指不能被继承的类,即不能再用最终类派生子类。在Java语言中,如果不希望某类被继承,可以声明这个类为最终类。最终类用关键字final来修饰。
②Java 规定,最终类中的方法都自动成为final()方法。在Java中Math类是最终类,因为里面的方法不能被修改。
③如果创建最终类似乎不必要,而又想保护类中的一些方法不被重写,可以用关键字final 来指明那些不能被子类重写的方法,这些方法称为最终方法。
(2)抽象类的特点
①不能new创建抽象类的实例。
②与具体类相同的是,抽象类中可以有成员变量和成员方法,包括构造方法,但与具体类不同的是,抽象类中可以定义抽象方法。
③抽象方法只能出现在抽象类中,但抽象类中可以没有抽象方法。
④抽象类中的所有抽象方法必须在其非抽象子类中加以实现,否则舌类也必须声眼咨抽象类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值