zoukankan      html  css  js  c++  java
  • Day6:面向对象------接口

    1、抽象类

    /*
    抽象的特点:
    1,抽象方法没有方法体,必须由抽象关键字所修饰。
    2,抽象方法一定存在于抽象类中,必须由抽象关键字所修饰。
    3,抽象类不可以实例化。因为调用抽象方法没意义。
    4,子类必须覆盖抽象类的所有抽象方法后,子类就可以实例化。否则该子类还是抽象类。
    
    
    抽象类的常见问题:
    
    1,抽象类一定是父类吗?
        是的,因为只有子类覆盖了抽象类中的方法,才可以创建对象,去使用这些方法。
    
    2,抽象类中有构造方法吗?
        有,因为父类的构造函数可以给子类对象初始化。
        
    
    3,抽象类中一定有抽象方法吗?
        不一定。
        其实抽象类和一般类都是用来描述事物的。都有具体的属性和行为。
        不同之处:
        抽象类中可以定义抽象类方法。但是不能实例化。
        一般类中不可以定义抽象方法,但是可以实例化。
    
    
        没有抽象方法的抽象类的出现,仅仅是不让该类创建对象。
    
    
    4,抽象关键字不可以和哪些关键字共存呢?
        final:
        private:
        static:

    2、接口

    接口可以简单的理解为是一个特殊的抽象类。
    abstract class AbsDemo
    {
        abstract void show1();
        abstract void show2();
    }
    
    class Demo extends AbsDemo
    {
        void show1(){}
        void show2(){}
    }
    

      接口的思想
      1,接口是对外提供的规则。
      2,接口的出现提高功能的扩展性。
      3,接口的出现降低了耦合性。 解耦。


    //用关键字interface来定义接口。而且内中的成员就固定为几种,而且修饰符是固定的。 //接口中的成员都是public修饰的。 特点: 1,接口不可以实例化。 2,接口的子类必须覆盖接口中所有的抽象方法后,该子类才可以实例化。否则该子类是抽象类。

    抽象类其实负责的是一个体系的基本功能。
    接口负责的是额外的功能。

    
    


    抽象类和接口的区别
    1,
    抽象类和类之间存在的是继承(is a)关系,但是只能单继承。
    接口和类之间存在的是实现(like a)关系,可以多实现。

    
    

    2,
    抽象类中是可以定义非抽象方法的,提供给子类直接使用。
    接口中的方法都是抽象的,子类必须全部实现才可以使用。

     

    单继承。

    
    

    class Fu1
    {
    void show(){}
    }

    
    

    class Fu2
    {
    void show(){}
    }

    
    

    class Zi extends Fu1,Fu2//不允许。
    {
    }

    3、练习

    1,多态的好处弊端,前提。
     
    本类的引用可以指向本类的对象也可以指向其子类的对象。★★★★★
    Animal a = new Animal();
    a = new Cat();
    本类型的引用可以指向本类型的对象。
    Animal a = new Animal();
    a = new Cat();
    
    class Animal
    {
    }
    class Cat extends Animal
    {
    }
    
    2,向上转型,向下转型什么时候用,代码举例!
    class Dog extends Animal
    {
        void eat()
        {
            System.out.println("....");
        }
    }
    
    class  
    {
        public static void main(String[] args) 
        {
            System.out.println("Hello World!");
            show(new Cat());
            show(new Dog());
    
            Animal a = new Cat();
        }
    
        public static void show(Animal a)
        {
            a.eat();
        }
    }
  • 相关阅读:
    EBS SQL > Form & Report
    oracle sql 优化分析点
    MRP 物料需求计划
    MRPII 制造资源计划
    Barcode128 应用实务
    Oracle SQL语句优化技术分析
    APPSQLAP10710 Online accounting could not be created. AP Invoice 无法创建会计分录
    Oracle数据完整性和锁机制
    ORACLE Responsibility Menu Reference to Other User
    EBS 常用 SQL
  • 原文地址:https://www.cnblogs.com/vijay/p/3502937.html
Copyright © 2011-2022 走看看