首页 > 编程语言 >Java基础——继承

Java基础——继承

时间:2022-10-08 10:57:03浏览次数:44  
标签:Java 继承 void 基础 System Person println public out

一、继承的实现 我们的子类可以通过继承获取父类的属性和方法,实例化是通过实例化的变量操作对象

//定义Person类
public class Person {    
    String name;
    int age;
    String gender;    
    public void say(){
         System.out.println("人能说话");
    }    
    public void sleep(){
         System.out.println("人能睡觉");
    }    
}
//定义Student类继承Person类
public class Student extends Person{
    String StudentNO;
    public void study(){
         System.out.println("学习");
    }
}
//定义Teacher 类继承Person类
public class Teacher extends Person{
    String TeacherNo;
    public void teach(){
         System.out.println("教书");
    }
}
//调用
Student s1=new Student();
Teacher t1=new Teacher();
s1.say();
t1.sleep();
二、注:java只能单继承不能多继承,可以连续继承
//定义Person类
public class Person {    
    String name;
    int age;
    String gender;    
    public void say(){
         System.out.println("人能说话");
    }    
    public void sleep(){
         System.out.println("人能睡觉");
    }    
}
//定义Student类继承Person类
public class Student extends Person{
    String StudentNO;
    public void study(){
         System.out.println("学习");
    }
}
//定义GoodStudent继承Student类
public class GoodStudent extends Student{}
//调用
GoodStudent goodStudent=new GoodStudent();
goodStudent.sleep();
三、方法的重写 当子类继承父类之后,子类调用父类的方法,但是如果父类额方法,不满足子类的需求,子类可以重写这个方法。 Person有南方人和北方人,南方人吃米饭,北方人吃馒头 重写的注意点:子类重写父类的方法,方法的声明必须和父类保持一致
//定义Person类
public class Person {    
    String name;
    int age;
    String gender;    
    public void eat(){
         System.out.println("人要吃饭");
    }    
}
//北方人类继承Person类
public class NorthPerson extends Person{
    @Override
    public void eat() {
     // TODO Auto-generated method stub
      System.out.println("北方人吃馒头");
    }
}
//南方人类继承Person类
public class SouthPerson extends Person{
    @Override
    public void eat() {
     // TODO Auto-generated method stub
     System.out.println("南方人吃米饭");
    }
}
//调用
NorthPerson northPerson = new NorthPerson();
SouthPerson southPerson = new SouthPerson();
northPerson.eat();
southPerson.eat();
四、Super super是一个关键字,代表父类的存储空间标识(可以理解为父类的引用)
//定义Person类
public class Person {
    String name;
    int  age;
    String gender;
    String address="山东";
    public void dosomthing(String thing){
     System.out.println("人能"+thing);
    }    
    public void eat(){
     System.out.println("山东人吃煎饼卷大葱");
    }    
    public void sleep(){
     System.out.println("人要睡觉");
    }    
}
//定义学生类使用,super调用父类的属性
public class Student extends Person{
    public void print(){
     System.out.println(super.address);
    }
}
//使用super调用父类的方法
public class Student extends Person{
    public void print(){
     System.out.println(super.address);
     //使用super调用父类的方法
     super.eat();
    }
}
五、继承中子类的构造方法
//定义Person类
public class Person {
    String name;
    int  age;
    String gender;
    String address="山东";
     //定义构造方法
     public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void dosomthing(String thing){
     System.out.println("人能"+thing);
    }    
    public void eat(){
     System.out.println("山东人吃煎饼卷大葱");
    }    
    public void sleep(){
     System.out.println("人要睡觉");
    }    
}
//此时要在Student中加上一个构造方法
public class Student extends Person{
    public Student(String name, int age) {
        super(name, age);
        // TODO Auto-generated constructor stub
    }
    public void print(){
        System.out.println(super.address);
        super.eat();
    }
}
//调用
public class Demo {
    public static void main(String[] args) {
    Student student = new Student("zs",22);
    student.print();
    System.out.println(student.name+student.age);
    }
}
总结:如果父类的构方法带有参数,则必须在子类的构造方法中通过super关键字调用父类的构造方法并加上合适的参数 如果父类构造方法没有参数,则在子类的构造方法中不需要使用super关键字调用父类构造方法,系统会自动调用父类的无参构造

标签:Java,继承,void,基础,System,Person,println,public,out
From: https://www.cnblogs.com/YHSDDJM/p/16768272.html

相关文章

  • Java基础——封装
    一、什么是封装封装就是对象的属性和操作结合为一个整体,和并尽可能隐藏对象内部的细节。二、为什么要封装1.为了安全,提高程序的复用性,封装就是该漏的,该藏得藏。2.如果......
  • 数据库基础
    1范式化设计1.1第一范式(1NF)无重复的列定义所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者......
  • ruby基础2
    ruby条件运算符c=(a<b)?a:b当a<b时取c=a,否则取c=b使用范围运算符截取字符串txt="cardithea"putstxt[0..3]putstxt[0...3] 转整数to_i转浮点数to_f......
  • Java读取XML文本文件
    圆周率没有尽头,风景一直在路上publicclassReadXmlFileTest{/***演示java读取xml文件*/publicstaticvoidmain(String[]args){......
  • Java学习!
    Java应用构建工具:Ant,Maven,Jekin应用服务器:Tomcat,Jetty,Jboss,Websphere,WeblogicWeb开发:Struts,Spring,Hibernate,MyBatis大数据:Hadoop安卓 Java特性优势......
  • Java学习之路:快捷键
    常用的快捷键Ctrl+Shift:切换输入法Ctrl+C:复制Ctrl+V:粘贴Ctrl+X:剪切Ctrl+A:全选Ctrl+Z:撤销Ctrl+Y:返回撤销Ctrl+S:保存Shift+Delete:永久删除Alt+F4:退出窗口Win+R:打......
  • Java基础——封装
    一、什么是封装封装就是对象的属性和操作结合为一个整体,和并尽可能隐藏对象内部的细节。二、为什么要封装1.为了安全,提高程序的复用性,封装就是该漏的,该藏得藏。2.如果......
  • [转]Linux时间同步基础知识
    原文地址:Linux时间同步基础知识|云中君(gitee.io)总结:中国使用CST:ChinaStandardTime,中国标准时间,与原子钟报时的协调世界时(UTC)关系:比UTC早8个小时,记为UTC+8,使......
  • Java基础——方法
    一、定义方法1.除了main方法以外,我们还可以自己定义方法,方法是程序执行的最小单元。2.定义了方法可以直接调用,可以直接拿来用,缩小了代码的冗余。在Student类中定义方法......
  • javascript中的糖衣语法--Promise对象
    一、Promise的诞生1、回调地狱最初javascript的异步实现就是使用回调函数。回调地狱就是:一个函数需要等它的回调函数(或者回调和回调的回调...)执行完毕之后再执行。简单......