• Java:抽象类、接口、成员内部类


    学习资料

    b站狂神说:https://www.bilibili.com/video/BV12J41137hu

    抽象类

    abstract 修饰的类,

    // 不能被实例化,new 抽象类()
    // 抽象类中可以有普通方法
    // 继承抽象类的普通类必须实现抽象类的抽象方法
    
    package com.zy7y.oop;
    
    /**
     * @ProjectName: JavaSE
     * @PackageName: com.zy7y.oop
     * @Author: zy7y
     * @Date: 2020/8/15 下午4:08
     * @Description: 抽象类
     */
    public abstract class AbstractClass {
        
        // 抽象类:AbstractClass
        
        // 抽象方法, 只有方法名字
        public abstract void doSomething();
        
        public void hello(){
            System.out.println("hello");
        }
        
        // 不能被实例化,new 抽象类()
        // 抽象类中可以有普通方法
        // 抽象方法必须存在抽象类中
        // 继承抽象类的普通类必须实现抽象类的抽象方法
        
    }
    

    接口

    接口不能被实例化~,接口中没有构造方法

    接口中的常量默认使用public static final 修饰

    接口中的方法默认使用public abstract修饰

    implements用来实现接口,可实现多个接口,实现接口必须重写接口中的抽象方法

    interface关键字定义接口

    package com.zy7y.oop;
    
    /**
     * @ProjectName: JavaSE
     * @PackageName: com.zy7y.oop
     * @Author: zy7y
     * @Date: 2020/8/15 下午4:15
     * @Description: 接口
     */
    public interface UserService {
        // 接口只能定义方法,不能实现方法,而且默认都是使用  public abstract 实现的
        public abstract void add(String name);
    
        void delete(String name);
    
        void select(String name);
    
        void update(String name);
    }
    

    implements实现接口

    package com.zy7y.oop;
    
    /**
     * @ProjectName: JavaSE
     * @PackageName: com.zy7y.oop
     * @Author: zy7y
     * @Date: 2020/8/15 下午4:20
     * @Description:
     */
    // 使用implements 来实现接口,可多实现UserService,HeroService
        // 实现接口必须重写接口中的抽象方法
    public class demo implements UserService{
    
        @Override
        public void add(String name) {
    
        }
    
        @Override
        public void delete(String name) {
    
        }
    
        @Override
        public void select(String name) {
    
        }
    
        @Override
        public void update(String name) {
    
        }
    }
    

    内部(套娃)类

    成员内部类

    package com.zy7y.oop;
    
    /**
     * @ProjectName: JavaSE
     * @PackageName: com.zy7y.oop
     * @Author: zy7y
     * @Date: 2020/8/14 下午11:58
     * @Description: 启动方法
     */
    public class Application {
        public static void main(String[] args) {
    
            // 外部类
            InnerClass innerClass = new InnerClass();
    
            // 实例化内部类
            InnerClass.Inner inner = innerClass.new Inner();
            inner.in();
            inner.getId();
            
        }
    }
    
    package com.zy7y.oop;
    
    /**
     * @ProjectName: JavaSE
     * @PackageName: com.zy7y.oop
     * @Author: zy7y
     * @Date: 2020/8/15 下午4:31
     * @Description: 内部类
     */
    public class InnerClass {
        // 外部类的属性
        private int id;
    
        public void out(){
            System.out.println("外部类的方法");
        }
    
        // 成员内部类
        public class Inner{
            public void in(){
                System.out.println("内部类的方法");
            }
            // 获得外部类的属性
            public void getId(){
                System.out.println(id);
            }
        }
    }
    
    作者:zy7y
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    SQL 学习之路 (一)
    简单、易懂、通用的微信号、二维码轮播js
    本地phpstudy 新建站点运行步骤
    react-native 项目环境搭建
    JavaScript与DOM(下)
    JavaScript与DOM(上)
    ThisYes,this!
    编写高质量的JavaScript代码的基本要点
    变量对象(Variable Object)
    JavaScript核心
  • 原文地址:https://www.cnblogs.com/zy7y/p/13509308.html
Copyright © 2020-2023  润新知