• 11.13 this 关键字


    1.this关键字

    package cn.dede.w;
    class A
    {
        private B b=null;
        public void fun()
        {
            this.b=new B(this);//当前值赋值给b
            this.b.fun();//到23
        }
        public void print()
        {
            System.out.println("hi xn");
        }
    }
    
    class B
    {
        private A a=null;
        public B(A a)
        {
            this.a=a;
        }
        public void fun()
        {
            this.a.print();//到18
        }
    }
    
    public class ClassAB
    {
        public static void main(String args[])
        {
            new A().fun();//到第2行
        }
    }

    2. 父类初级

    package cn.dede.w;
    abstract class A1
    {
        public abstract void fun();
    }
    class B1 extends A1
    {
        public void fun()
        {
            System.out.println("hi xn");
        }
    }
    public class FirstAbstract 
    {
        public static void main(String agrs[])
        {
            B1 b=new B1();//
            b.fun();
        }
    }

    3.父类中级

    package cn.dede.w;
    abstract class A2
    {
        private String name;
        public A2(String name)
        {
            this.name=name;
        }
        public String getName()
        {
            return this.name;
        }
        public abstract void fun();
    }
    
    class B2 extends A2{
        public B2(String name)
        {
            super(name);
        }
        public void fun()
        {
            System.out.println(super.getName());
        }
    }
    public class AbstractDemo1 
    {
        public static void main(String args[])
        {
            B2 b=new B2("xn" );
            b.fun();
        }
    }

    4.

    package cn.dede.w;
    public abstract class PersonA1
    {
        private String name;
        private int age;
        private String songs;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
        public String getSongs()
        {
            return songs;
        }
        public void setSongs(String songs)
        {
            this.songs=songs;
        }
        public PersonA1(String name,int age, String songs)
        {
            this.name=name;
            this.age=age;
            this.songs=songs;
        }
        public PersonA1()
        {
            super();//作为一个特殊的关键字super表示调用父类的构造函数;它有动态类型,就是当前这个对象的类型。你可以对它调用成员函数,把它传递给别的函数,等等等等,静态地选择父类的那个版本。
        }
        public String toString()
        {
            return "Person[name="+ name +",age="+ age +",songs="+ songs +"]";
        }
        public abstract String speak();
    }

    package cn.dede.w;
    public class PersonStudent extends PersonA1
    {
        private float score;
    
        public PersonStudent(String name,int age,String songs,float score)
        {
            super(name,age,songs);
            this.setScore(score);
        }
        public String speak() 
        {    
            return "身份标签-》学生; 我叫:"+super.getName()+" "+super.getAge()+""+super.getSongs()+" "+this.score+"";
        }
        public float getScore()
        {
            return score;
        }
        public void setScore(float score)
        {
            this.score=score;
        }
    }
    package cn.dede.w;
    public class PersonWorker extends PersonA1
    {
        private float salary;
        
        public PersonWorker(String name,int age,String songs,float salary)
        {
            super(name,age,songs);
            this.setSalary(salary);
        }
        public float getSalary()
        {
            return salary;
        }
        public void setSalary(float salary)
        {
            this.salary=salary;
        }
        public String speak()
        {
            return"工人说 -->我叫:"+super.getName()+" "+super.getAge()+""+super.getSongs()+"  "+this.salary+"" ;
        }
        
    }
    package cn.dede.w;
    public class AbstractDemo2 
    {
        public static void main(String[]args)
        {
            PersonA1 student=new PersonStudent("仙女",13,"崂山道士",99f);
            PersonA1 worker=new PersonWorker("刘全有",33,"崂山道士",9999f);
            print(student.speak());
            print(worker.speak());
        }
        private static void print(String speak)
        {
            System.out.println(speak);
        }
    }

     5.

    抽象类练习

    package cn.dede.w;
    abstract class A3
    {
        public abstract void fun();
    }
    class B3 extends A3
    {
        public void fun()
        {
            System.out.println("yeah");
        }
    }
    public class AbstractDemo3 
    {
        public static void main(String args[])
        {
            A3 a=new B3();
            a.fun();
        }
    }

  • 相关阅读:
    KnowYoueSelf
    计算机组成原理--海明码的编码和校验方法(易懂)
    html5新特性
    web前端性能优化
    web标准
    《王者归来》笔记-安全&性能01
    vue核心最基本功能
    BOM&DOM
    JavaScript-语法
    前端04
  • 原文地址:https://www.cnblogs.com/dede-6/p/7834093.html
Copyright © 2020-2023  润新知