1、属性覆写(较少使用)我们来简单验证下哈class AString name = redking;class B extends A/子类定义了一个和父类中相同的name属性Michaelpublic void print()/与System.out.println(this.name);效果相同System.out.println(name);public class Demo01public static void main(String args)B b = new B();b.print();程序打印了在子类中定义的name属性:Michael如果要打印父类中的name属性,我们可以修改
2、成super.name/如果要打印父类中的name属性,我们可以修改成super.nameSystem.out.println(super.name);父类中的name属性输出了哈这就叫属性的复写属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根本就无法覆写。 super与this调用构造方法能同时写在一个构造方法之中吗?答案是不行哈 Super调用构造方法时,一定要放在构造方法的首行,this调用构造方法时也必须放在首行,如果两个都放在首行,则肯定冲突。有人认为可以不调用super方法哈,我们看下面的Demo02public A()/里面有三个构造方法public
3、 B()this(abc,888);public B(String name)this();public B(String name,int age)this(name);这样就产生了一个问题,我们在讲this关键字时也是提到过的哈在使用this()调用构造方法的时候肯定要留下一个出口。否则编译通不过哈/最好把this(修改成super()作为出口哈super();现在编译就通过了哈本季主要知识点:1、继承的类图表示 2、继承的题目现在我们来看个Demo03:这个滴继承关系我们来用类图表示知道了上面的内容,我们来看下练习题:class Personprivate String name;pri
4、vate String addr;private char sex;private int age;/一般参数少的构造方法写在上面哈public Person()public Person(String name,String addr)this.setName(name);this.setAddr(addr);this.setSex(男);this.setAge(27);public Person(String name,String addr,char sex,int age)this.setSex(sex);this.setAge(age);public void setName(Str
5、ing name)this.name = name;public void setAddr(String addr)this.addr = addr;/M:表示男;F:表示女public void setSex(char sex)this.sex = sex;public void setAge(int age)this.age = age;public String getName()return this.name;public String getAddr()return this.addr;public char getSex()return this.sex;public int getAge()return this.age;/所有的内容应该交给外部输出public String getInfo()return 姓名:+this.name+,地址:+this.addr,性别:+(this.sex=M?男:女),年龄:+this.age;class Student extends Personprivate float math;private float english;public Student()/默认隐含了super();pu