当前位置: 首页 > news >正文

extends继承

extends   继承
如何使用?
class A{
    int x;
 
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
    public String toString(){return "A类的实例,x属性的值是:"+x;}
 
    public A(){x=10;}
    public A(int x){this.x = x;}
}
//B类继承A类,A类是B类的父类(superClass,BaseClass)
//B类是A类的子类(派生类,subClass, childClass)
class B extends A{
    int y;
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
}

 

作用:
    子类继承父类所有属性和方法,构造器不能继承.
    new子类对象时,总是先new父类对象。
 
好处:
    1.代码复用
    2.子类可以扩展新的属性和方法
 
 
    构造器不能继承但new子类对象时,总是先new父类对象。
    默认调用父类的无参构造器,
    如果要显式调用父类指定构造器,使用super([参数])调用.
    super()必须注意:在构造器中只能是第一行代码,并且只能用一次。
 
 
class A{
    public A(int x, int y, String str){...}
}
class B{
    public B(){
        super(10,20,"abc");
    }
    public B(int x, int y){
        super(x,y,"abc");
    }
    public B(int x,int y, String s){
        super(x,y,s);
    }
}
 
 
 
public class Pointer2D{
    int x,y;
    public Pointer2D(){}
    public Pointer2D(int x, int y){
        this.x=x;
        this.y = y;
    }
    main{
        Pointer2D p1 = new Pointer2D();
        Pointer2D p2 = new Pointer2D(10,20);
 
    }
 
}
public class Pointer3D extends Pointer2D{
    int z;
}

 

 
 
 
static 与对象无关
类的组成成员
class 类{
    对象属性成员
    类属性   
 
    代码块   
    静态代码块   
 
    构造器
 
    非静态方法
    静态方法
 
    内部类
}
======================================================
extends   继承
如何使用?
class A{
    int x;
 
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
    public String toString(){return "A类的实例,x属性的值是:"+x;}
 
    public A(){x=10;}
    public A(int x){this.x = x;}
}
//B类继承A类,A类是B类的父类(superClass,BaseClass)
//B类是A类的子类(派生类,subClass, childClass)
class B extends A{
    int y;
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
}

 

作用:
    子类继承父类所有属性和方法,构造器不能继承.
    new子类对象时,总是先new父类对象。
 
好处:
    1.代码复用
    2.子类可以扩展新的属性和方法
    构造器不能继承但new子类对象时,总是先new父类对象。
    默认调用父类的无参构造器,
    如果要显式调用父类指定构造器,使用super([参数])调用.
    super()必须注意:在构造器中只能是第一行代码,并且只能用一次。
 
super关键字,除了可以调用在构造器中调用父类构造器之外,还可调用父的属性和方法.
 
this关键字:
    1.this([参数列表])表示当前类的构造器,super([参数列表])表示父类的构造器.
    2.this.属性或this.方法()表示引用当前类的对象的属性或方法;super.属性或super.方法()表示引用父类的对象的属性或方法;
 
class Demo{
    int x;
    public Demo(){
        super();
        this(0);
        //调用下面带参的构造器,作用类似于this.x=0;
    }
    public Demo(int x){
        this.x = x;
    }
}
//重载,重写,抽象类,终态类

 

 
 

 
 
cl      ass A{
        String s="class A"; 
      void show(){
             System.out.println(s);
}
 }
 class B extends A{
     String s="class B";   
      void show() {
             System.out.println(s);
}
}
 public class TypeConvert{
       public static void main(String args[]){
              B b1;
B b2=new B();
              A a1,a2;
              a1=(A)b2;子类强制转换成父类是 方法是父类,属性是子类的
              a2=b2;
              System.out.println(a1.s);class A
        a1.show();class B
              System.out.println(a2.s);class A
        a2.show();class B
              b1=(B)a1;父类强制转换成子类是方法重写了,属性重写
              System.out.println(b1.s);class B
         b1.show();class B
              System.out.println(b2.s);class B
            b2.show();class B
       }
 }

 

class A
class B
class A
class B
class B
class B
class B
class B

 

转载于:https://www.cnblogs.com/zachary7/p/8191501.html

相关文章:

  • 《SqlServer 系列》 - 函数
  • Android 100+行实现本地跳一跳辅助(不需要连接电脑)
  • MyBatis DAO层传递参数到mapping.xml
  • 微内核与面向组件
  • 运维学python之爬虫中级篇(二)线程、协程
  • 资料推荐--Google Java编码规范
  • Python中的string模块的学习
  • bzoj千题计划205:bzoj3529: [Sdoi2014]数表
  • 关于多线程的参数问题
  • sudo、磁盘结构、echo,awk,python计算、RAID0和1的区别
  • jsp页面按时间排序
  • 18载艰苦创业,曾动念房地产转型,讯飞的江湖夜雨和桃李春风
  • UML--------------------类图
  • 如何使用MACS进行peak calling
  • 使用mysqladmin命令修改MySQL密码与忘记密码
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 「面试题」如何实现一个圣杯布局?
  • 【知识碎片】第三方登录弹窗效果
  • 03Go 类型总结
  • Docker入门(二) - Dockerfile
  • MYSQL 的 IF 函数
  • Redis学习笔记 - pipline(流水线、管道)
  • Swift 中的尾递归和蹦床
  • zookeeper系列(七)实战分布式命名服务
  • 基于遗传算法的优化问题求解
  • 开源地图数据可视化库——mapnik
  • 一个JAVA程序员成长之路分享
  • 进程与线程(三)——进程/线程间通信
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #微信小程序(布局、渲染层基础知识)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (三)模仿学习-Action数据的模仿
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .Family_物联网
  • .NET 回调、接口回调、 委托
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET的微型Web框架 Nancy
  • .Net各种迷惑命名解释
  • .net开发引用程序集提示没有强名称的解决办法
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET轻量级ORM组件Dapper葵花宝典
  • .Net小白的大学四年,内含面经
  • @ComponentScan比较
  • @vue/cli 3.x+引入jQuery
  • [ solr入门 ] - 利用solrJ进行检索
  • []我的函数库
  • [16/N]论得趣
  • [2010-8-30]