• 13-Java面向对象-抽象类与接口


    finall关键字:


     final声明的类不能被继承,类似太监


    final声明的类不能被重写:


     使用final声明的变量变成常量,常量不可以被修改:



    JAVA抽象类:


     


    抽象类不能直接被实例化:

     


    abstract class Abs{
        private int age;
        public void tell(){
            
        }
        //抽象方法
        public abstract void say();
        public abstract void print();
        public void setAge(int age){
            this.age = age;
        }
        public int getAge(){
            return age;
        }
    }
    class AbsDemo extends Abs{
        public void say(){
            System.out.println(getAge());
        }
    }
    public class AbsDemo01{
        public static void main(String[] args){
        // Abs a = new Abs();
            AbsDemo a = new AbsDemo();
            a.setAge(20);
            a.say();
            a.print();
            
            
        }
    }


    接口的实现也必须通过子类,使用关键字implements:

    package com.jikexueyuan.fin;
    
    interface Inter{
        public static final int AGE = 100;
        public abstract void tell();
    }
    
    class A implements Inter{
        public void tell(){
            
        }
    }
    
    public class InterDemo01 {
        public static void main(String[] args){
            //Inter i = new Inter();
            //不能直接而是要通过子类implements来使用
            A a = new A();
            a.tell();
            System.out.println(Inter.AGE);
        }
    }

    接口也是可以多实现:

    package com.jikexueyuan.fin;
    
    interface Inter1{
        public static final int AGE = 100;
        public abstract void tell();
    }
    
    interface Inter2{
        public abstract void say();
    }
    
    class A implements Inter1,Inter2{
        public void tell(){
            
        }
        public void say(){
            
        }
    }
    
    public class InterDemo01 {
        public static void main(String[] args){
            //Inter i = new Inter();
            //不能直接而是要通过子类implements来使用
            A a = new A();
            a.tell();
            System.out.println(Inter.AGE);
            a.say();
        }
    }

    一个子类可以同时继承抽象类和实现接口:

    package com.jikexueyuan.fin;
    
    interface Inter1{
        public static final int AGE = 100;
        public abstract void tell();
    }
    
    interface Inter2{
        public abstract void say();
    }
    
    class Abs1{
        public abstract void print();
    }
    
    class A extends Abs1 implements Inter1,Inter2{
        public void tell(){
            
        }
        public void say(){
            
        }
        public void print(){
            
        }
    }
    
    public class InterDemo01 {
        public static void main(String[] args){
            //Inter i = new Inter();
            //不能直接而是要通过子类implements来使用
            A a = new A();
            a.tell();
            System.out.println(Inter.AGE);
            a.say();
            a.print();
        }
    }

    一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承:

  • 相关阅读:
    PHP无法使用file_get_contents或者curl_init()函数解决办法
    EXT 删除 监听
    PHP调试工具Xdebug安装配置教程
    Linux常用命令大全
    js中setInterval与setTimeout用法
    基于Web过程模拟的动态Web信息获取
    HNU2[J题]Modified LCS 扩展GCD
    SQL Server 2005定时备份维护操作步骤定时备份维护操作步骤定时备份维护操作步骤定时备份维护操作步骤
    object_id (N'...')是什么意思?
    使用TSQL来创建作业(这个比较好)
  • 原文地址:https://www.cnblogs.com/juham/p/15394126.html
Copyright © 2020-2023  润新知