zoukankan      html  css  js  c++  java
  • 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    P4890 Never·island
    P2617 Dynamic Rankings
    P3243 [HNOI2015]菜肴制作
    P4172 [WC2006]水管局长
    P4219 [BJOI2014]大融合
    P5241 序列
    P1501 [国家集训队]Tree II
    无法读取用户配置文件,系统自动建立Temp临时用户
    组件服务 控制台打不开
    打印服务器 功能地址保护错误
  • 原文地址:https://www.cnblogs.com/zy7y/p/13509308.html
Copyright © 2011-2022 走看看