一、封装encapsulation,继承inheritance java中的继承都是单继承,每一个子类只能有一个直接父类,但是可以有多个间接父类 继承的优点:1.代码的复用 继承的原则: private 的父类属性可以被继承但是不能被子类使用 public的方法,属性是可以被继承过来的 任何子类的构造方法都会调用父类的构造方法 任何构造方法的第一行都必须是this(xxx)或super(xxx)如果程序员自己不写系统 会自动加上super(xxx) 默认情况下子类会掉用父类的无参构造 super:代表父类 this:代表子类 this. / super. 调用本类/父类的属性或方法,用法没有限制,可出现在构造中 this() / super() 调用本类/父类构造 this() / super()不能出现在方法里,这种方法只能出现在构造的第一行,所以在同一个构造里,this()或super()只能有一个 执行顺序: 1.先父后子2.先找this()再找super() 如都有没有就会去找super()3.先语句块,后构造 public class Person { private String name; private int age; public Person() { super(); System.out.println("person()"); } public Person(String name, int age) { super(); this.name = name; this.age = age; System.out.println("person(1,2)"); } } public class Teacher extends Person { public Teacher() { super("1",2); System.out.println("teacher()"); } public Teacher(int id) { super(); this.id = id; System.out.println("teacher(1)"); } } public class TestExtend { public static void main(String [] args){ Person p=new Teacher(1); System.out.println("end"); } }打印: person() teacher(1) end 主函数换成如下: public class TestExtend { public static void main(String [] args){ Person p=new Teacher(); System.out.println("end"); } }打印: person(1,2) teacher() end 1.有this()就无super();2.有super()//显式3.无super()无this()//隐式调用super()
java 课堂笔记6
最新推荐文章于 2022-04-17 12:24:49 发布