面向对象02


三大特性:
  封装:
    追求“高内聚,低耦合”,属性私有,get/set
  继承:
    extends:扩展 java中只有单继承,没有多继承 继承是类和类的关系  
    object类 super 方法重写
      重写:
        需要继承关系,子类重写父类的方法!
        参数列表必须相同
        修饰符:范围可以扩大但不能缩小 public>Protected>Default>private
        抛出的异常:范围可以被缩小,但不能扩大 ClassNotFoundException--->Exception(大)
        子类的方法和父类必要一致:方法体不同
  多态:
    1.多态是方法的多态,属性没有多态
    2.父类和子类 有联系 类型转换异常:ClassCastException
    3.存在条件:继承关系,方法需要重写,父类引用指向子类对象
    父类引用指向子类

    把子类转换为父类,向下转型    

    把父类转换为子类 向上转型,强制转换

    Father f = new Son();

    ((Son) f).go(); 此时通过转换,指向子类的f对象可以调用子类的方法

 

不能重写:
  static
  private  
  final
static:

  静态修饰符

public class opp12 {
    private static int age;//静态变量
    private double score;//非静态变量
    public void  run() {
        
    }
    public static void go() {
        
    }
    public static void main(String[] args) {
        opp12 o=new opp12();
        System.out.println(opp12.age);
        //非静态变量不能使用类名访问
//        System.out.println(opp12.score);
        System.out.println(o.age);
        System.out.println(o.score);
        //非静态方法可以调用静态方法,反之不行
//        new opp12().go();
//        opp12.go();
//        go();
        
    }
    static {
        //静态代码块
    }
    {
        //代码块(匿名代码块)
    }
}
package 面向对象;
class f1{
//	其次是代码快  赋初值~
	{
		System.out.println("匿名代码块");
	}
//	首先显示,并且只执行一次
	static{
		System.out.println("静态代码块");
	}
//	最后才是构造方法
	public f1() {
		System.out.println("构造方法");
	}
}
public class opp13 {
	public static void main(String[] args) {
		f1 d=new f1();
		System.out.println("================");
		f1 p = new f1();
	}
}

  静态导用包

  import static java.lang.Math.random;

posted @ 2023-03-21 13:45  happy泥  阅读(10)  评论(0)    收藏  举报