吴裕雄--天生自然JAVA面向对象高级编程学习笔记:继承的进一步研究

class Person{                    // 定义Person类
    private String name ;        // 定义name属性
    private int age ;            // 定义age属性
    public Person(){
        System.out.println("父类Person中的构造。") ;
    }
    public void setName(String name){
        this.name = name;    
    }
    public void setAge(int age){
        this.age = age ;
    }
    public String getName(){
        return this.name ;
    }
    public int getAge(){
        return this.age ;
    }
};
class Student extends Person{                    // 定义Student类
    private String school ;        // 定义school属性
    public Student(){
        super() ;    // 默认隐藏
        System.out.println("子类Student中的构造。") ;
    }
    public void setSchool(String school){
        this.school = school ;
    }
    public String getSchool(){
        return this.school ;
    }

};
public class InstanceDemo{
    public static void main(String arsg[]){
        Student stu = new Student()    ;// 实例化子类对象
        stu.setName("张三") ;    // 此方法在Student类中没有明确定义
        stu.setAge(30) ;
        stu.setSchool("清华大学") ;
        System.out.println("姓名:" + stu.getName() + ",年龄:" + stu.getAge() + ",学校:" + stu.getSchool() ) ;
    }
};
class Person{        // 定义父类
    void print(){    // 默认的访问权限
        System.out.println("Person --> void print()。") ;
    }
};
class Student extends Person{    // 定义继承关系
    public void print(){
        System.out.println("Student --> void print()。") ;
    }
};
public class OverrideDemo01{
    public static void main(String args[]){
        Student s = new Student() ;
        s.print() ;
    }
};
class Person{        // 定义父类
    public void print(){    // 默认的访问权限
        System.out.println("Person --> void print()。") ;
    }
};
class Student extends Person{    // 定义继承关系
    void print(){    // 错误的,降低了访问权限
        System.out.println("Student --> void print()。") ;
    }
};
class Person{        // 定义父类
    void print(){    // 默认的访问权限
        System.out.println("Person --> void print()。") ;
    }
};
class Student extends Person{    // 定义继承关系
    public void print(){
        super.print() ;    // 访问父类中被子类覆写过的方法
        System.out.println("Student --> void print()。") ;
    }
};
public class OverrideDemo03{
    public static void main(String args[]){
        Student s = new Student() ;
        s.print() ;
    }
};
class Person{        // 定义父类
    private void print(){    // 默认的访问权限
        System.out.println("Person --> void print()。") ;
    }
    public void fun(){    // 定义一个fun方法
        this.print() ;    // 调用print()方法
    }
};
class Student extends Person{    // 定义继承关系
    void print(){    // 覆写父类中的方法
        // super.print() ;    // 访问父类中被子类覆写过的方法
        System.out.println("Student --> void print()。") ;
    }
};
public class OverrideDemo04{
    public static void main(String args[]){
        Student s = new Student() ;
        s.fun() ;
    }
};
class Person{        // 定义父类
    public String info = "MLDN" ;    // 定义一个公共属性
};
class Student extends Person{    // 定义继承关系
    public String info = "LXH" ;    // 定义了一个与父类中属性名称一致的属性
    void print(){    // 覆写父类中的方法
        System.out.println("父类中的属性:" + super.info) ;
        System.out.println("子类中的属性:" + this.info) ;
    }
};
public class OverrideDemo05{
    public static void main(String args[]){
        Student s = new Student() ;
        s.print() ;
    }
};
class Person{                    // 定义Person类
    private String name ;        // 定义name属性
    private int age ;            // 定义age属性
    public Person(String name,int age){
        this.setName(name) ;
        this.setAge(age) ;
    }
    public void setName(String name){
        this.name = name;    
    }
    public void setAge(int age){
        this.age = age ;
    }
    public String getName(){
        return this.name ;
    }
    public int getAge(){
        return this.age ;
    }
    public String getInfo(){
        return "姓名:" + this.getName() + ";年龄:" + this.getAge() ;
    }
};
class Student extends Person{                    // 定义Student类
    private String school ;        // 定义school属性
    public Student(String name,int age,String school){
        super(name,age) ;    // 明确调用父类中有两个参数的构造
        this.school = school ;
    }
    public void setSchool(String school){
        this.school = school ;
    }
    public String getSchool(){
        return this.school ;
    }
    public String getInfo(){
        return super.getInfo() + ";学校:" + this.getSchool() ;
    } 

};
public class SuperDemo01{
    public static void main(String arsg[]){
        Student stu = new Student("张三",30,"清华大学")    ;// 实例化子类对象
        System.out.println(stu.getInfo()) ;
    }
};
class Person{                    // 定义Person类
    private String name ;        // 定义name属性
    private int age ;            // 定义age属性
    public Person(String name,int age){
        this.name = name ;
        this.age = age ;
    }
};
class Student extends Person{                    // 定义Student类
    private String school ;        // 定义school属性
    public Student(){
        // this("LXH",30,"MLDN") ;
        // 会在此处调用父类的构造,默认调用的是无参
    }
    public Student(String name,int age){
        this() ;
    }
    public Student(String name,int age,String school){
        this(name,age) ;    // 明确调用父类中有两个参数的构造
        this.school = school ;
    }
};
public class SuperDemo02{
    public static void main(String arsg[]){
        Student stu = new Student("张三",30,"清华大学")    ;// 实例化子类对象
        System.out.println(stu.getInfo()) ;
    }
};

猜你喜欢

转载自www.cnblogs.com/tszr/p/12152995.html