• 抽象类与抽象方法


    抽象类和抽象方法

    抽象类和抽象方法:使用abstract关键字修饰的类和方法就成了抽象类和抽象方法,格式与普通类和方法类似。

    抽象类的特性:

    ·有抽象类就要有继承的子类去实现抽象类中的抽象方法。

    ·抽象类中可以定义普通类中定义的所有成员,并且只有在抽象类中才能定义抽象方法。

    ·抽象类中不能new对象,抽象类中的对象是给子类调用的。

    ·在抽象类中定义的方法,在其普通子类中必须实现所有抽象父类中定义的所有抽象方法,否则这个子类也要申明成抽象类。

    抽象方法的特性:

    ·抽象方法只有方法声明没有方法实现

    ·抽象方法是准备在子类中实现的,它只是一个模板。

    没有抽象属性和抽象变量一说。

    注意:

    abstract与final不能同时修饰一个方法或类。因为final修饰的方法不能被重写而abstract修饰的方法需要在子类实现(重写);final修饰的类不能有继承,而abstract修饰的类是抽象类必须要有子类,因此这两个修饰符冲突,不能一起使用。

    abstract与static不能同时修饰一个方法。static修饰方法属于类方法,可以被“类.方法”类直接调用,而abstract修饰的方法是抽象方法,没有方法体,是需要在子类中重写的方法。因此static不能与abstract同时修饰一个方法。

    abstract与private不能同时修饰一个方法。private修饰的方法只能在当前类被调用,而abstract修饰的抽象类必须要在子类中被重写才有意义,如果父类中方法权限是private那么这个方法对子类是透明的。因此private不能同时修饰一个方法。

    ·抽象类的作用:

         抽象类就是一个模板,也叫模板设计模式。父类提供了多个子类的通用方法,并且把一个或多个方法留给子类实现,这就是模板模式。

    例子:抽象类

    public abstract class SpeedMeter
    {
    	private double trunRate;
    	
    	public abstract double getRadius();
    
    	public void setTruneRate(double trunRate)
    	{
    		this.trunRate = trunRate;
    	}
    
    //计算车速的通用算法,周长 x 转速 = 速度
    	public double getSpeed()
    	{
    		return java.lang.Math.PI * 2 * trunRate * this.getRadius();
    	}
    }
    
    
    public class Car extends SpeedMeter
    {
    	public double getRadius()
    	{
    		return 5.0;
    	}
    
    	public static void main(String[] args)
    	{
    		Car ca = new Car();
    		
    		ca.setTruneRate(10.0);
    
    		System.out.println(ca.getSpeed());
    
    	}
    }
    


  • 相关阅读:
    重构FourlegLayers控件
    XNA 没有经过Content Pipeline对内容做Alpha预处理解决办法
    山寨DNF
    XNA中 SpriteSortMode 与 BlendState 《摘自王磊文章》
    HDU1060 Leftmost Digit
    HDU1095 A hard puzzle
    magento安装心得
    关于小米手机网站抢购的一点技术分析
    MVC3和MVC4内置Razor引擎的差异
    查看进程
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3283567.html
Copyright © 2020-2023  润新知