面向对象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;
浙公网安备 33010602011771号