zoukankan      html  css  js  c++  java
  • Java之抽象类

    抽象类通常用来作为一个类族的最顶层的父类,用最底层的类表示现实中的具体事物,用最顶层的类表示该类族所有的事物的共性。

    抽象方法:

    1、在定义Java方法时可以只给出方法头,而不给出方法内部实现代码,这种的方法称为抽象方法;

    2、凡是没有方法体的方法必须用关键字abstract修饰为抽象方法;

    3、凡是含有抽象方法的类必须声明为抽象类。

    抽象类:

    1、用abstract关键字修饰一个类时,该类叫做抽象类;
    2、包含抽象方法的类必须声明为抽象类,但是一个抽象类中可以不包含任何抽象方法;
    3、抽象类不一定有抽象方法,有抽象方法的一定是抽象类。

    abstract class  A  //如果f方法没有方法体,则必须的在class前加 abstract  如果f方法含有方法体,则class前面可加也可不加abstract ,因为“一个抽象类中是可以不包含任何抽象方法”
    {
    	private int i;
    	public abstract void f();  //如果f方法没有方法体,则f方法必须的声明为抽象方法,即必须的在前面加abstract
    }
    
    class TestAbsClass_1
    {
    	public static void main(String[] args)
    	{
    		System.out.println("今天我很高兴!");
    	}
    }


    抽象类实现多态:

    不能new出抽象类对象,但可以定义一个抽象类的引用。

    例如,假设A是抽象类,B是A的子类且完全实现了A 的所有抽象方法,则:

    A aa = new A();    //error
    A aa = new B();    //OK
    我们可以把一个子类对象的地址赋给抽象类的引用,然后通过抽象类的引用调用子类从父类继承过来的方法,即抽象类也可以实现多态。

    abstract class A
    {
    	public abstract void f();
    }
    
    class B extends A
    {
    	public void f()
    	{
    		System.out.println("哈哈");
    	}
    }
    
    public class TestAbs_1
    {
    	public static void main(String[] args)
    	{
    		//A aa1 = new A();  //error
    		A aa2 = null;       //可以定义一个抽象类的引用
    		aa2 = new B();      //将子类对象的地址赋给抽象类的引用
    		aa2.f();            //用抽象类的引用访问子类的方法  这就是多态
    	}
    }





  • 相关阅读:
    STM32---GPIO
    SQLITE笔记
    STM32 ---- PWM
    STM32--- IIC使用
    TP配置apache下Rewrite模式
    韩顺平老师SNS数据库表 http://blog.csdn.net/zxman660/article/details/7786994
    HashMap和HashTable的区别http://blog.csdn.net/shohokuf/article/details/3932967
    HashMap和HashSet的区别http://www.importnew.com/6931.html
    在mysql中存储生日,php中计算今天是否为用户生日
    文件的MIME类型
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6597347.html
Copyright © 2011-2022 走看看