• 吴裕雄--天生自然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()) ;
        }
    };
  • 相关阅读:
    戏说程序猿之荒唐的需求
    戏说程序猿之过年--二叔,我真不会修电脑
    深入理解设计模式(17):迭代器模式
    深入理解设计模式(16):备忘录模式
    我的2018
    Java高级篇(一)——线程
    Java进阶篇(六)——Swing程序设计(下)
    Java进阶篇(六)——Swing程序设计(上)
    Java进阶篇(五)——Java的I/O技术
    Java进阶篇(四)——Java异常处理
  • 原文地址:https://www.cnblogs.com/tszr/p/12152995.html
Copyright © 2020-2023  润新知