zoukankan      html  css  js  c++  java
  • JAVA入门到精通-第13讲-抽象类-接口

    幼儿园学习不好,小学学习不好;一般是这样;
     
     
     用抽象类来解决父类方法的不确定性;
     
     
       抽象方法不能在父类中实现;

     
      抽象类不能实例化;这样会报错;
      是不完整的一个类;
     
      
     
     

     
     
     
     接口也体现了一种多态;

     
     
     接口不能实例;

     抽象类中可以有实现了的方法;
     如果前面有abstract ,不可以实现;

     接口中的方法一个都不能实现;
     接口是更加抽象的抽象类;
     
     
     可以实现多个接口,Usb, Kkk 接口;
     
     
     接口中的a是静态的,通过接口的名字可以把它取出来;Usb.a

     
     一个接口可以继承别的接口;

     
     高内聚低耦合:很分散,你是你,我是我;
      

    java面向对象编程(3)--抽象类

    抽象类--解决之道

    当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]

    //抽象类的必要性[Demo124.java]

    public class Demo124 {

        public static void main(String[] args) {

            //Animal an=new Animal();抽象类不允许实例化

            Animal an=new Cat();

            an.cry();

            an=new Dog();

            an.cry();

        }

    }

    //抽象类abstract关键词

    abstract class Animal{

        String name;

        int age;

        //动物会叫,使用了abstract抽象方法

        abstract public void cry();//抽象类中可以没有abstract抽象方法

        //抽象类内可以有实现方法

        public void sx(){

            System.out.println("实现方法");

        }

    }

    //当一个子类继承的父类是abstract抽象类的话,需要程序员把抽象类的抽象方法全部实现。

    class Cat extends Animal{

        //实现父类的cry,其实类似上节学习中的子类覆盖父类

        public void cry(){

            System.out.println("猫猫叫");

        }

    }

    class Dog extends Animal{

        //实现父类的cry,其实类似上节学习中的子类覆盖父类

        public void cry(){

            System.out.println("汪汪叫");

        }

    }

     

    抽象类--深入讨论

    抽象类是java中一个比较重要的类。

    1、用abstract关键字来修饰一个类时,这个类就是抽象类。

    2、用abstract关键字来修饰一个方法时,这个方法就是抽象方法。

    3abstract抽象类中的abstract抽象方法是不允许在抽象类中实现的,一旦实现就不是抽象方法和抽象类了。abstract抽象方法只能在子类中实现。

    4、抽象类中可以拥有实现方法。

    5、抽象方法在编程中用的不是很多,但是在公司笔试时,却是考官比较爱问的知识点。

     

    抽象类--注意事项

    1、抽象类不能被实例化

    2、抽象类不一定要包含abstract方法。也就是说,抽象类可以没有abstract抽象方法。

    3、一旦类包含了abstract抽象方法,则这个类必须声明为abstract抽象类。

    4、抽象方法不能有主体。

        正确的抽象方法例:abstract void abc();

        错语的抽象方法例:abstract void abc(){}


     

    java面向对象编程(3)--接口

    接口--为什么有?

    USB插槽就是现实中的接口。

    什么是接口?

    接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。

    接口的建立语法:interface 接口名{方法;}

    语法:class 类名 implements 接口{

           方法;

           变量;

        }

    小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。

     

    接口--注意事项

    1、接口不能被实例化

    2、接口中所有的方法都不能有主体。错误语法例:void aaa(){}(注意不能有花括号)

       接口可以看作更加抽象的抽象类。

    3、一个类可以实现多个接口

    4、接口中可以有变量[但变量不能用privateprotected修饰]

      a、接口中的变量,本质上都是static的而且是final类型的,不管你加不加static修饰

      b、在java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用

            访问形式:接口名.变量名

    5、一个接口不能继承其它的类,但是可以继承别的接口

     

    //接口的实现[Demo125.java]

    //电脑,相机,u盘,手机

     

    //usb接口

    interface Usb{

        int a=1;//加不加static都是静态的,不能用privateprotected修饰

        //声明了两个方法

        public void start();//接口开始工作

        public void stop();//接口停止工作

    }

    //编写了一个相机类,并实现了usb接口

    //一个重要的原则:当一个类实现了一个接口,要求该类把这个接口的所有方法全部实现

    class Camera implements Usb{

        public void start(){

            System.out.println("我是相机,开始工作了..");

        }

        public void stop(){

            System.out.println("我是相机,停止工作了..");

        }

    }

    //接口继承别的接口

    class Base{

    }

    interface Tt{

    }

    interface Son extends Tt{

    }

    //编写了一个手机,并实现了usb接口

    class Phone implements Usb{

        public void start(){

            System.out.println("我是手机,开始工作了..");

        }

        public void stop(){

            System.out.println("我是手机,停止工作了..");

        }

    }

    //计算机

    class Computer{

        //开始使用usb接口

        public void useUsb(Usb usb){

            usb.start();

            usb.stop();

        }

    }

    public class Demo125 {

        public static void main(String[] args) {

            System.out.println(Usb.a);

            //创建 Computer

            Computer computer=new Computer();

            //创建Camera

            Camera camera1=new Camera();

            //创建Phone

            Phone phone1=new Phone();

            computer.useUsb(camera1);

            computer.useUsb(phone1);

        }

    }

     
    接口可以这样使用;
     











  • 相关阅读:
    【转】JVM 堆内存设置原理
    【转】Java八种基本数据类型的比较及其相互转化
    8月12日
    并发与竞争
    高通gpio配置输出
    创建一个字符设备的基本流程
    4月2号 字符设备驱动实验
    3.30学习遇到卡死点
    断言函数的用法
    12.02 下午
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10044196.html
Copyright © 2011-2022 走看看