2022-10-24

2022-10-23  本文已影响0人  RobertLiu123

一、下溯造型

下溯造型前必须有上溯造型

二、关于私有方法是否被继承

三、final

可修饰常量
可修饰方法,不能被重写
可修饰类,修饰的类不能被继承

四、abstract 抽象

1、修饰类,叫抽象类
(1)抽象类中可以有普通的成员变量
(2)抽象类中可以有非抽象方法
(3)抽象类可以有构造方法,但是不能被创建对象
(4)抽象类的子类要么全部重写抽象类中的抽象方法,要么子类抽象
2、修饰方法,叫抽象方法
(1)抽象方法必须在抽象类中
(2)抽象方法不能有方法体,即{},而用;代替

implement 实现(即重写抽象方法)

abstract 与 final是不能同时出现的

五、接口

interface
接口中的成员量由public和final和static修饰
接口中方法由public和abstract修饰
jdk1.8以前接口中所有方法必须是抽象方法
接口没有构造方法,更不能创建对象

接口存在是为了弥补单继承的不足,也相当于制定了一种规范,它的的实现类就要遵守这种规范

java中的类可以单继承一个类,实现多个接口
java中的接口可以多继承
建议先用实现接口,继承父类慎用

六、内部类

1、成员内部类

public class Outer {
    public class Inner{
        public void say() {
            System.out.println("haha");
        }
    }
    public static void main(String[] args) {
        new Outer().new Inner().say();
    }

}
public class Outer {
    public class Inner{
        public void innerSay() {
            System.out.println("haha");
        }
    }
    public void outerSay() {
        new Inner().innerSay();
    }
    public static void main(String[] args) {
        new Outer().outerSay();
    }

}

2、局部内部类
注意:局部内部类中不能修改所在方法的变量

public class Outer {

    public void outerSay() {
        class Inner{
            public void InnerSay() {
                System.out.println("haha");
            }
        }
        Inner inner = new Inner();
        inner.InnerSay();
        
    }
    public static void main(String[] args) {
        new Outer().outerSay();
    }
    

}

3、静态内部类
静态内部类无法访问非静态成员

public class Outer {
    static int a;
    static class Inner{
        public void innerSay() {
            System.out.println("haha");
        }
    }
    public static void main(String[] args) {
        Outer.Inner inner = new Outer.Inner();
        inner.innerSay();
    }
    

}

4、匿名内部类
有时,如果只需要一次子类或实现类对象,没有必要创建一个类,就使用匿名内部,在匿名内部类中重写方法即可

public interface Flyable {
    void fly();
    void haha();
    

}
    public static void main(String[] args) {
        
        Flyable f = new Flyable() {

            @Override
            public void fly() {
                // TODO Auto-generated method stub
                System.out.println("栽愣愣的飞");
                
            }

            @Override
            public void haha() {
                // TODO Auto-generated method stub
                
            }
        };
        f.fly();
        f.haha();
    }

七、内部类的好处

弥补了单继承的不足

public class Child {
    
    public class InnerFather{
        public void makeMoney() {
            
        }
    }
    public class InnerMother{
        public void loseMoney() {
            
        }
        
    }
    public void haha() {
        new InnerFather().makeMoney();
    }
    public void hehe() {
        new InnerMother().loseMoney();
    }

}

八、instanceof

对象 instanceof 类
判断对象是否是该类的

九、枚举

上一篇 下一篇

猜你喜欢

热点阅读