zoukankan      html  css  js  c++  java
  • java记录3--抽象

    1.由来

    利用抽象类是i为了更好的对类加以分类,例如各种植物有具体名字,也有“植物”这个抽象的词对所有具体植物进行归类。

    2.抽象类通常用来作为一个类族的最顶层的父类(表示该类族所有事物的共性),

    用最底层的类表示现实中的具体事物,通常最上面的若干层都是抽象的。

    3.抽象方法

    3.1在定义Java方法时可以指给出方法头,而不给出方法内部实现代码

    3.2凡是没有方法体的方法必须使用关键字abstract修饰

    4.抽象类

    4.1凡是含有抽象方法的类都必须声明为抽象类

    抽象类不一定有抽象方法,有抽象方法的一定是抽象类

    abstract class A
    {
        abstract public void f();
    }
    
    class B extends A
    {
        public void f()
        {
            System.out.println("BBB");
        }
    }
    
    public class TestAbsClass_2
    {
        public static void main(String[] args)
        {//aa是抽象类的引用
            //A aa = new A();  //error   不能new 出抽象类对象 
           A aa2 = null;//定义一个抽象类的引用
    aa2 = new B();//将子类对象的地址赋给抽象类的引用(aa2指向)
    aa2.f();//用抽象类的引用访问子类的方法 ,实现多态
    } }

    不能new 出抽象类对象,但可以定义一个抽象类的引用,假设A是抽象类,B是A的子类且完全实现了A的所有抽象方法

    我们可以把一个子类对象的地址赋给抽象类的引用,然后通过引用调用子类从父类继承过来的方法,

    即抽象类也可以实现多态(*)

    5.Final

    5.1final修饰类,表示该类不能被继承,(认为该类很完美已经不需要定义子类)

    格式   public final  class A{....}        //public 和final 可以互换

    5.2 final修饰类中的若干属性表示该属性必须被赋值并且只能被赋值一次(默认值不算真正的赋值)

    初始化有2种方式(只能选择其中一种)

    1.在定义成员变量的同时初始化2.在类中所有的构造函数初始化

    ps:一个类的所有普通方法内部都不可以修改final修饰过的成员变量的值

  • 相关阅读:
    检查SQL Server 2005的索引密度和碎片信息(转)
    数据库系统异常排查之DMV(转)
    sql server性能分析--执行sql次数和逻辑次数
    sql语句优化
    C#获取文件夹下的所有文件的文件名
    siebel学习笔记-应用/数据访问控制
    FlexPaper实现文档在线浏览(附源码)
    C# Process.WaitForExit()与死锁
    前端网站
    微信小程序
  • 原文地址:https://www.cnblogs.com/zhuimingzhenbai/p/12264917.html
Copyright © 2011-2022 走看看