封装、继承、多态
this和super关键字
1、对象调用它,它就是这个对象
2、构造器中可以使用this()调用构造器
3、this()必须在构造器体的第一行,不能有多个this()
1 public Demo13(String name, int age) { 2 // this.name = name; 3 this(name); 4 this(age);//此处会报错:Call to 'this()' must be first statement in constructor body 5 this.age = age; 6 }
区别:
this super
访问本类的属性,若没有去父类找 直接访问父类的属性
访问本类的方法,若没有去父类找 直接访问父类的方法
调用本类的构造器,必须放在第一行 调用父类的构造器,必须放在第一行
this可以代表本类的实例 super不代表任何实例
private**属性私有化(提供公有的set设置值和get获取值方法)**
匿名对象
1 public class Demo { 2 public static void main(String[] args) { 3 //匿名对象 4 new Demo(); 5 } 6 }
静态修饰符static(静态结构)
静态结构不能被垃圾回收机制回收;
静态结构不依赖于某一个对象;
静态结构依赖于类存在的;
静态结构优先于对象加载。
(代码块创建几个对象就执行几次,静态块只在加载类的时候执行一次)、
(执行顺序:静态块 --->实例块---->构造器 继承的时候:父静--->子静---->父实----->父构--->子实---->子构)
1 public class Father { 2 static { 3 System.out.println("父类静态块执行了..."); 4 } 5 6 { 7 System.out.println("父类实例块执行了..."); 8 } 9 10 public Father(){ 11 System.out.println("父类构造器执行了..."); 12 } 13 } 14 public class Son extends Father { 15 static { 16 System.out.println("子类静态块执行了..."); 17 } 18 19 { 20 System.out.println("子类实例块执行了..."); 21 } 22 23 public Son(){ 24 System.out.println("子类构造器执行了"); 25 } 26 27 public static void main(String[] args) { 28 new Son(); 29 } 30 }
执行结果:
父类静态块执行了... 子类静态块执行了... 父类实例块执行了... 父类构造器执行了... 子类实例块执行了... 子类构造器执行了 Process finished with exit code 0
静态修饰符static 被类的所有对象共享,是判断是否使用静态关键字的条件; 可以通过类名调用,也可以通过对象名调用; static访问特点:静态成员方法只能访问静态成员。
多态
1、多态的前提和体现
(1)有继承或者实现关系
(2)有方法重写(重写override)
(3)有父类引用指向子类对象
2、多态中成员访问特点(成员变量未被重写)
(1)成员变量:编译执行都看左
(2)成员方法:编译看左,执行看右
3、多态的好处与弊端
(1)好处:提高了程序的扩展性 体现:定义方法的时候,使用父类型作为参数,操作的时候使用具体的子类型参与操作
(2)弊端:不能使用子类的特有功能
4、多态的向上向下转型
(1)向上转型:Animal a = new Cat();
(2)向下转型:Cat c = (Cat) a;
(ClassCastException:类型转换异常)
标签:...,执行,封装,继承,子类,多态,静态,父类 From: https://www.cnblogs.com/it-java-ls/p/17029839.html