【Java】抽象类与模板入门

本文介绍了Java中的抽象类与模板方法。详细阐述了继承、重载与重写、向上转型与向下转型的概念。对于抽象类,讲解了其特点,包括无法实例化、限制子类必须实现抽象方法等。最后,讨论了模板方法模式,它是通过抽象基类定义模板,子类可以延迟实现具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、继承

 1、继承就是子类继承父类的特征和和行为,使得子类对象具有父类的实例域和方法,还可以以此基础添加新方法和域来满足需求。
 2、首先调用父类构造方法实例化父类对象,然后调用子类构造方法实例化子类。
 3、若父类只有有参构造,则子类不存在无参构造。
 4、父类只有无参构造,子类可以存在有参构造
 5、单继承局限:java中一个类智能使用extends继承一个父类。
 6、要使用继承必须满足is-a原则

public class Person {    
      int age;    
      public Person(int age){        
      this.age=age;    
      }
 }
 
 class Student extends Person{    
      public Student(){        
      super():   这句话子类默认就有这句话,所以无参构造本来就有,              //因此报错    
 }    
      public Student(int age){        
      super(age);    
     }
 }

二、重载与重写的区别

(1)方法重载与方法重写都是Java多态的实现。
(2)方法重载:在同一个类中定义了若干个方法名称相同,参数个数或类型不同,返回值无关的一组方法。 如System.out.println();
(3)方法重写:在有继承关系的类之间,子类定义了与父类除了权限以外全都相同的方法。 子类方法权限必须>=父类方法权限(private除外,因为private是私有,不能出现在重写中)

三、向上转型与向下转型

1、向上转型 :父类 父类引用=new 子类实例();
用于参数统一化。
Person per = new Student();
per引用能使用的方法:只能使用父类中定义好的方法。
2、向下转型子类 子类引用=(子类)父类引用
要进行向下转型必须先进行向上转型、一般与向上转型搭配使用。Student stu=(Student)per;

四、抽象类

1、抽象类用关键字abstract定义。
2、抽象类无法直接实例化对象
3.abstract 和 final不能同时出现,有矛盾。 abstract和private不能同时出现
4.抽象类的子类要么实现所有抽象方法(存在方法体),要么子类也是抽象类。
5.抽象类存在普通属性和普通方法
6.抽象类存在意义:限制子类必须进行某种动作(编译器会检查子类是否全部复写父类中的抽象方法)。

五、模板

1、模板模式(模板方法模式)是基于抽象类的一种模式。
2、模板模式有一个共同的抽象基类,模板方法使用final封装到基类中子类延迟实现若干步骤
3、一个标准的模板抽象类如下:

public abstract class Template{
  //模板方法,子类只能使用无法覆写(因为final)   
  public final void algorithm(){    
   concertMethod();   
   }
   public void concretMethod(){   
    //大家共享方法  
    }
  //基类不知道实现,延迟到子类实现  
  public abstract method();
//钩子函数
//基类中默认什么都不用做,子类可以扩展  
 public void hook(){ 
   }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值