• java基础知识3--抽象类,接口


    抽象类:

    1.父类方法的不确定性,不能实例化。抽象方法只能在抽象类中。

    2.抽象类不一定要包含abstract方法。

    3.包含抽象方法的类一定是抽象类。

    4.抽象方法不能有主体,即抽象方法不能实现。

    //这就是一个抽象类
    abstract class Animal
    {
        String name;
        int age;
        abstract public void cry();//抽象方法不能实现cry(){};错误
    }    
    //当一个类继承的父类是抽象类的话
    //需要把抽象类中所有的抽象方法都实现
    class Cat extends Animal{
    //实现父类的cry
    public void cry()
    {
    
    //do nothing
    }
    }

     接口:

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

    语法:

    class 类名 implements 接口{

      方法;

      变量;

    }

     注:接口是更加抽象的抽象类,抽象类里的方法可以有方法体,抽象类的方法可以有方法体(非abstract),接口里的所有方法都没有方法体。接口实现了程序设计的多态和高内聚低耦合的设计思想。

    原则:

    1.接口不能被实例化。

    2.接口中的所有方法都不能有主体。

    3.一个类可以实现多个接口。

    4.接口中可以有变量,但是不能用private和protected修饰。

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

       b.在java开发中,我们经常把常用的变量放到接口中,作为全局变量,访问形式:接口名.变量

    5.一个接口不能继承其他的类,但是可以继承其他的接口。

    //接口usb
    interface Usb
    {
        int a=0;//必须初始化
        public void start();
        public void stop();
    }
    interface Killy
    {
        public void Cry();
    }
    //相机类,实现usb接口
    //重要的原则:当一个类实现了一个接口,就要求该类把这个接口的所有方法都要实现
    class  Camera implements Usb,Killy
    {
        public void start()
        {
            System.out.println("相机开始工作");
        }
        public void stop()
        {
            System.out.println("相机关机");
        }
        public void Cry(){
            System.out.println("相机坏了!!!");
            };
    
    }
    //手机类
    class  Phone implements Usb,Killy
    {
        public void start()
        {
            System.out.println("手机开始工作");
        }
        public void stop()
        {
            System.out.println("手机关机");
        }
        public void Cry(){
            System.out.println("手机坏了!!!");
            };
    }
    
    //计算机
    class Computer
    {
        //开始使用usb接口
        public void useUsb(Usb usb)
        {
            usb.start();
            usb.stop();
        }
    }
    
    public class demo
    {
        public static void main(String args[])
            {
                Computer computer = new Computer();
                Camera camera = new Camera();
                Phone phone = new Phone();
                //可以调用实例,因为已经实现了接口的方法
                computer.useUsb(camera);
                computer.useUsb(phone);
    
            }
    }

    1.实现接口可以看作是对继承的一种补充。

    2.实现接口可以在不打破竭诚关系的前提下,对某个类功能扩展,非常灵活。

     △前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现。又叫静态绑定,例如static和final方法,注意这里也包括private方法,因为它属于隐式final。

    △后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。

  • 相关阅读:
    「Gym103409H」Popcount Words
    「UR #20」机器蚤分组
    PKUSC2022 游记
    SQL 执行顺序
    sklearn.ensemble.VotingClassifier
    数据分析目录
    SSL协议工作原理
    k8s最佳实践:部分业务POD内存持续泄露问题
    k8s 最佳实践:处理内存碎片化
    k8s 最佳实践:解决长连接服务扩容失效
  • 原文地址:https://www.cnblogs.com/bersaty/p/3237828.html
Copyright © 2020-2023  润新知