面向对象的特点继承
描述对象关系的时候存在一种继承关系
管继承的类叫子类 被继承的类叫父类
单继承关系
1.一个子类只能有一个父类 一个父类可以有多个子类
Is -----a
父类 相对子类讲很抽象
子类 相对父类讲更具体
通过extends 描述子类继承父类的关系
- 子类可以使用父类的属性和方法 ,父类不能够访问子类独有的属性和方法
3.创建子类对象时 要先调用父类的构造方法,再调用子类的构造方法
package com.openlab.pojo;
public class Dog extends Animal {
private static Dog d = new Dog("大黄",5);
public String eyescolor;
// 123 - Animal -Dog
{
System.out.println("000");
}
//静态代码块
static{
System.out.println("123");
}
public Dog(String name,int legs) {
super(name, legs);
System.out.println("This is A DOG!!!");
}
public void eat(){
System.out.println("干饭 ");
}
}
package com.openlab.pojo;
public class Animal {
public String name;
public int legs;
{
System.out.println("xxx");
}
static{
System.out.println("456");
}
public Animal(String name,int legs) {
System.out.println("This is an Animal!!!");
}
// 动物开心了的表达方式
public void enjoy(){
System.out.println("叫两声");
}
}
package com.openlab.pojo;
public class Test {
public static void main(String[] args) {
Dog d = new Dog("大黄",5);
d.enjoy();
// Animal a = new Animal();
}
}
看到一个类要先看这个类的继承关系
总结:
首先: 父类的静态代码块
父类的代码块
父类的构造函数
子类的代码块
子类的构造函数
子类的静态代码块
父类代码块
父类构造函数
子类代码块
子类构造函数
1.父类的静态代码块 只执行一次 并且在类加载的时候执行
2.子类的静态代码块
3.父类的代码块
4.父类的构造方法
5.子类的代码块
6.子类的构造方法
注意:
需要注意静态的变量的位置 如果他在静态代码块之前 则先加载
如果在静态的变量之后 则按照静态代码的顺序来执行
如果有静态变量 则先加载静态变量 在进主方法 一个类中静态的代码会按照代码的顺序来执行