Day19-Java

面向对象

接口

  • 普通类:只有具体实现

  • 抽象类:具体实现和规范(抽象方法)都有

  • 接口:只有规范,自己无法写方法,专业的约束,约束和实现分类

  • 声明接口的关键字是interface

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

  • implements可以实现多个接口

  • 必须要重写接口中的方法

package com.Kong.Oop.demo08;

//interface定义的关键字,接口都需要实现类
public interface UserService {
    //常量,public static final可以不写
    int age=10;
    //接口中的所有定义的方法都是抽象的,public abstract可以不写
    void sayHello(String name);
    void delete (String name);
    void update (String name);
    void query (String name);
}
package com.Kong.Oop.demo08;

public interface TimeService {
    void timer();
}
package com.Kong.Oop.demo08;

//抽象类:extents
//类 可以实现接口 implements一个接口
//实现了接口的类,就需要重写接口中的方法

//利用接口实现多继承
public class UserServiceImpl implements UserService, TimeService {
    @Override
    public void timer() {

    }

    @Override
    public void sayHello(String name) {

    }

    @Override
    public void delete(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }
}

内部类

  • 内部类就是在一个类的内部再定义一个类
package com.Kong.Oop.demo09;

public class Outer {
    private int id=1;
    public void out(){
        System.out.println("这是外部类的方法");
    }
    public class Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }

        //获得外部类的私有属性
        public void getid(){
            System.out.println(id);
        }
    }

    //静态内部类不能访问外部非静态属性
    public static class Sinner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
    }

    //一个java类中可以有多个class类,但是只能有一个public class
    class Inner2{}

    //局部内部类
    public void method(){
        class Inner{
            public void in(){

            }
        }
    }
}
package com.Kong.Oop;

import com.Kong.Oop.demo09.Outer;

public class Application  {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.out();
        Outer.Inner inner= outer.new Inner();
        inner.getid();
    }
}
package com.Kong.Oop.demo09;

public class Test {
    public static void main(String[] args) {
        //没有名字的初始化类,不用将实例保存到变量中
        new Appel().eat();

        UserService userService=new UserService(){
            @Override
            public void hello() {

            }
        };
    }
}
class Appel{
    public void eat(){
        System.out.println("eat");
    }
}
interface UserService{
    void hello();
}
posted @ 2026-05-13 22:26  小空谜  阅读(5)  评论(0)    收藏  举报