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

       通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

        程序见证一切:

    1)抽象类

    public  abstract class Abstract//定义一个抽象类
    {
            public abstract void printName();//只有抽象类才有权利拥有抽象方法;
            
            public abstract int getArea();
            
            public void printAge()//抽象类也可以拥有具体的方法;
            {
                System.out.println(23);
            }
        
    }
    2)子类,继承于抽象类

    public class AbstractTest extends Abstract
    {
        
        int  width ;
        
        int height ;
        
        public AbstractTest(int width,int height)//自定义构造方法,含两个整型的参数
        {
            this.width = width;//第一个width是参数,第二个是成员变量;
            this.height = height;
        }
        
        public void printName()//继承了抽象类的类,它必须实现抽象类的抽象方法;具体方法可以不实现;
        {
            System.out.println("继承后的抽象方法");
        }
        public int getArea()
        {
             int area = width*height;
             return area ;
        }
        
        public static void main(String[] args)
        {
            //Abstract a = new Abstract(); 不允许的操作,因为抽象类如果重写抽象方法的话,那么该抽象类无法被实例化;Cannot instantiate the type Abstract
            /*
             * 修改了原抽象类的抽象方法为不抽象,可以被实例化;
             */
            Abstract a = new Abstract()
            {
                public void printName()
                {
                    System.out.println("已经不是抽象方法了");
                }

                public int getArea()
                {
                    return 0;
                }
            };
            a.printAge();
            /*
             * 它的子类可以实例化;
             */
            AbstractTest at = new AbstractTest(4,5);
            
            at.printName();
            
            System.out.println(at.getArea());
        }
    }


    程序输出的结果:

    23
    继承后的抽象方法
    20


  • 相关阅读:
    3、看源码MVC中的Controllr的Json方法
    2、MVC+IOC容器+ORM结合
    1、看源码MVC如何实例化控制器?
    6、UnityConfig实现AOP
    5、动态代理AOP实现-DynamicProxy模式
    1、面向切面编程
    通过js看类似C#中的回掉
    C#新开一个线程取到数据,如何更新到主线程UI上面
    2.C#自定义Attribute
    1.C#中几个简单的内置Attribute
  • 原文地址:https://www.cnblogs.com/MedivhQ/p/3801417.html
Copyright © 2011-2022 走看看