精华内容
下载资源
问答
  • 主要介绍了java子类继承父类实例-披萨的选择实现代码,具有一定借鉴价值,需要的朋友可以参考下。
  • Java子类继承父类

    千次阅读 2015-08-07 15:57:30
    1.子类继承父类,就继承了父类的方法和属性。 2.在子类中,可以使用父类中“public”和“protected”定义的方法和属性,也可以创建新的数据和方法;没有访问“private”定义的方法和属性的权限。 protected的使用...
    1.子类继承了父类,就继承了父类的方法和属性。

    2.在子类中,可以使用父类中“public”、“protected”和“缺省”(缺省时,.java文件必须要在同一个包内)定义的方法和属性,也可以创建新的数据和方法;没有访问“private”定义的方法和属性的权限。

    protected的使用方式:

    /**
     * Person.java
     */
    package com.iting.testProtect.vo;
    
    public class Person {
    	protected String name;
    	protected int age;
    	
    	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;
    	}
    	
    	
    }
    

    /**
     * Student.java
     */
    package com.iting.testProtect.vo;
    
    public class Student extends Person {
    	private String school;
    
    	public String getSchool() {
    		return school;
    	}
    
    	public void setSchool(String school) {
    		this.school = school;
    	}
    
    	public Student(String name , int age , String school) {
    		this.name = name;
    		this.age = age;
    		this.school = school;
    	}
    
    	@Override
    	public String toString() {
    		return "Student [school=" + school + ", name=" + name + ", age=" + age
    				+ ", getSchool()=" + getSchool() + ", getName()=" + getName()
    				+ ", getAge()=" + getAge() + ", getClass()=" + getClass()
    				+ ", hashCode()=" + hashCode() + ", toString()="
    				+ super.toString() + "]";
    	}
    	
    	
    }
    

    /**
     * Main.java
     */
    package com.iting.testProtect.main;
    
    import com.iting.testProtect.vo.Student;
    
    public class Main {
    	public static void main(String[] args) {
    		Student student = new Student("阿呆",18,"集美大学");
    		System.out.println(student.toString());
    	}
    
    }
    



    3.在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”。




    4.一个子类只能有一个父类,然而,一个父类可以有多个子类。


    5.重写继承的方法的相关问题:

    /**
     * Person.java
     */
    package com.iting.testProtect.vo;
    
    public class Person {
    	
    	private void working() {
    		System.out.println("上班");
    	}
    	
    	protected void eat() {
    		System.out.println("吃白米饭");
    	}
    	
    	public void walking() {
    		System.out.println("随便走");
    	}
    }
    

    /**
     * Student.java
     */
    package com.iting.testProtect.vo;
    
    public class Student extends Person {
    	
    	/*这不是重写,Student并没有获得Person的working()方法的权限*/
    	public void working() {
    		System.out.println("上学");
    	}
    	
    	/*这是重写,子类方法的权限必须 >= 所重写的父类方法的权限*/
    	public void eat() {
    		System.out.println("喝粥");
    	}
    	
    	/*非法,子类中的walking()方法的访问权限private比被覆盖方法的访问权限public弱*/
    	private void walking() {
    		System.out.println("蹦蹦跳跳");
    	}
    }
    


    展开全文
  • java 子类继承父类运行顺序

    千次阅读 2016-08-24 17:29:10
    java 子类继承父类运行顺序

    平时项目经常用到 子类继承父类 但对执行顺序一直不太清楚,花时间捋一捋,重新学习一下,感觉有些收获

    现在我们有两个类 

    public class TestSta1 {
    	
    	static {
    		System.out.println("this static TestSta1    	<span style="white-space:pre">	</span>1");
    	}
    	
    	{
    		System.out.println("this TestSta1		<span style="white-space:pre">	</span>3");
    	}
    	
    	public TestSta1(){
    		System.out.println("this TestSta1(str)		<span style="white-space:pre">	</span>4");
    	}
    	
    }


    public class TestSta2 extends TestSta1{
    	
    	public TestSta2() {
    		System.out.println("this TestSta2()       		7");
    	}
    	
    	static{
    		System.out.println("this static testSta2    	<span style="white-space:pre">	</span>2");
    	}
    	
    	{
    		System.out.println("this teststa2		5");
    	}
    	
    	{
    		System.out.println("this teststa2		6");
    	}
    	
    	public static void main(String[] args) {
    		new TestSta2();
    	}
    	
    }
    执行结果  

    this static TestSta1    	1
    this static testSta2    	2
    this TestSta1			3
    this TestSta1(str)		4
    this teststa2		<span style="white-space:pre">	</span>5
    this teststa2		<span style="white-space:pre">	</span>6
    this TestSta2()       		7
    我们都知道,java的机制是先编译成字节码文件.class  然后在JVM上解释器逐行翻译成机器码文件,那从.class 到JVM加载的时候,就执行static代码块和static变量,所以先执行静态代码块,并且执行顺序是先执行父类的在执行子类的,当执行开始执行到new TestSta2(); 

    创建对象的时候,调用了它的无参构造,所有子类的构造方法第一行的时候都隐含 super()

    public TestSta2() {
    	super();
    	// TODO Auto-generated constructor stub
    }
    所以会调用父类的构造方法,而每次在执行构造方法之前都会执行代码块,父类的代码块,父类的构造方法执行完毕之后,开始执行子类的代码块,构造方法,

    如果我们修改一些东西

    public static void main(String[] args) {
    	System.out.println(" main testSta1() ``````````````````");
    	new TestSta2();
    }
    会发现执行顺序

    this static TestSta1    	1
    this static testSta2    	2
     main testSta1() ``````````````````
    this TestSta1			3
    this TestSta1(str)		4
    this teststa2		<span style="white-space:pre">	</span>5
    this teststa2		<span style="white-space:pre">	</span>6
    this TestSta2()       		7
    静态代码块执行顺序在main方法之前

    如果我们重新建个类

    public class TestSta3 {
    	public static void main(String[] args) {
    		System.out.println("  main teststa3 ~~~~~~~~~~~~~~");
    		new TestSta2();
    	}
    }
    执行顺序

      main teststa3 ~~~~~~~~~~~~~~
    this static TestSta1    	1
    this static testSta2    	2
    this TestSta1			3
    this TestSta1(str)		4
    this teststa2		<span style="white-space:pre">	</span>5
    this teststa2		<span style="white-space:pre">	</span>6
    this TestSta2()       		7
    我的理解我们在TestSta2 起main 方法的时候,JVM会首先加载TestSta2.class的时候开始初始化静态代码块,而如果在TestSta3 起main方法,JVM会首先加载TestSta3,只有执行到 new TestSta2(); 时 会加载TestSta2.class  才会初始化静态代码块

    最后总结一下执行顺序

    1.父类静态代码块

    2.子类静态代码块

    3.父类代码块

    4.父类构造

    5.子类代码块

    6.子类构造


    展开全文
  • JAVA 子类继承父类范例,2个子类继承同一个父类,完整代码,下载粘贴到project中可以直接运行
  • java子类继承父类、方法的重写(覆盖)   在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。 格式: class 子类 extends 父类 {} public class Text { public static void main (String[]...

     java子类继承父类、方法的重写(覆盖)

     

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。

    格式:

    class 子类 extends 父类 {}

    
    
    public class Text {
    	public static void main (String[] args) {
    		new newPhone().showNum();
    	}
    }
    //父类 手机
    class Phone{
    	public void sendMessage() {
    		System.out.println("发短信");
    	}
    	public void call() {
    		System.out.println("打电话");
    	}
    	public void showNum() {
    		System.out.println("显示来电号码");
    	}
    }
    //子类 新手机类
    class newPhone extends Phone{
    	//覆盖父类的来电显示号码功能,并增加自己的显示姓名和图片功能
    	public void showNum() {
    		//调用父类已经存在的功能使用super
    		super.showNum();
    		//增加自己特有显示姓名和头像功能
    		System.out.println("显示姓名");
    		System.out.println("显示头像");
    	}
    } 

     

    展开全文
  • 从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单...

    从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使
    用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类
    的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问,
    这里暂不考虑Java反射机制,于是我分析,子类不能继承父类私有的属性及方法,但
    是分析了内存后,我发现我是错的,在一个子类被创建的时候,首先会在内存中创建
    一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类
    的对象。所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类
    对象确实拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子
    类是无法访问到的,只是拥有,但不能使用。就像有些东西你可能拥有,但是你并不
    能使用。所以子类对象是绝对大于父类对象的,所谓的子类对象只能继承父类非私有
    的属性及方法的说法是错误的。可以继承,只是无法访问到而已。

    转载于:https://www.cnblogs.com/987m/p/11229816.html

    展开全文
  • 简单说,如果子类继承父类自己写构造方法中没有显示调用父类有参构造方法,则会先隐式调用父类无参构造方法,若是先显示(super(300))调用了父类有参构造方法,则父类的无参构造方法就不会再被调用。 ...
  • Java子类继承父类构造器

    千次阅读 2018-05-04 11:16:26
    子类如何继承父类的构造器?2.子类与父类构造器执行顺序?二、创建父类创建父类Animal,有两个构造器class Animal{ private Integer high; public Animal() { System.out.println("Animal()"); } ...
  • 子类继承了抽象父类之后不能 由父类创建的对象不能使用子类的方法,因为继承是单向的! 例如下面的例子: Shape rectangle = new Rectangle(); Shape square = new Square(); Shape circular = new Circular...
  • Java 子类继承父类方法

    千次阅读 2019-05-22 09:13:32
    类 A 称为基类(父类),类 B 称为派生类(子类) 类继承关系语法形式 Class 派生类名:基本名表 { 数据成员函数声明 } 基本名表 构成 访问控制 基类名1, 访问控制 基本名2,……..,问控制 基本名...
  • 用学生的输出为例子,子类继承父类,然后在子类中新定义一个属性并可以给父类属性赋值,以及重写tostring和重写equals方法。 demo测试 package Student; public class demo { public static void main(String[] ...
  • 子类继承父类的时候,子类的构造函数怎么写 构造函数用于构造一个类,是不能继承,不能被覆盖的。 (1)父类显式定义有参构造函数,而没有定义无参构造函数的时候,java虚拟机默认不自动创建一个无参构造函数。 (2...
  • java中,子类继承父类时,子类必须调用父类的构造方法,如果类没有构造方法,会自动声明无参构造方法,反之,则不会创建。 子类的构造方法默认会调用父类的无参构造方法,如果父类没有无参构造方法,子类必须显示...
  • 没有重写之前,的子类继承父类得来的方法,是指向父类方法的内存,还是新建出一块属于子类专属的方法区
  • Java 子类继承父类调用顺序

    千次阅读 2019-01-18 12:37:55
    创建子类后的调用顺序 父类静态代码块(注意静态代码块只有首次创建才会执行,之后创建均不执行) 子类静态代码块 父类非静态代码块 父类构造方法 子类非静态代码块 子类构造方法 多态 this.method(o) &amp;...
  • java 子类继承父类各方法的执行顺序

    千次阅读 2018-05-01 18:24:03
    结论: java中子类继承父类各方法的执行顺序:(这里只写jvm自动调用的方法的顺序,包括静态代码块、代码块、构造方法) 1、第一次创建子类对象 父类静态代码块 子类静态代码块 父类代码块 父类构造方法 子类...
  • java中,父类子类、静态成员等各种初始化顺序很令人头痛,简单从下面的例子说起吧。 package study; public class Static{ static{ System.out.printIn("the first static block"); } public Static(){ ...
  • java不可以继承的情况如下 ①constructor 构造函数 ②private修饰的字段,方法
  • Java中子类继承父类,父类可能有:静态变量、实例变量、静态方法、实例方法。 当子类定义相同静态变量、实例变量、静态方法、实例方法时,思考一下,会是怎样的结果? 举例如下: public class Parent { public ...
  • 在之前的博文JAVA中子类继承父类时构造方法的继承问题中,我们已经了解到了当子类对象实例化的时候,调用子类构造方法之前,会先调用父类的构造方法,在继承的机制中,创建一个子类对象,同样会创建一个父类子对象,...
  • Dog继承Animal class Animal{ protected String name; protected String description; protected String say() { return "一只动物"; } } class Dog extends Animal{ private String name;...
  • 子类继承父类: 1,父类有无参构造,子类无参构造或有参构造都隐性调用了父类的无参构造(不管写不写super,如果显性调用了父类的有参构造,则不会再调用无参构造) 2,父类没有无参构造,子类所有构造方法都必须...
  • java 子类继承父类 类加载顺序

    千次阅读 2018-03-19 23:00:17
    父类如下 package com.example.demo.service; import org.springframework.stereotype.Service; @Service public class TestService { public TestService(){ System.err.println("TestService 层"); ...
  • Java中,子类实例化时会调用父类构造方法,子类父类方法中会有一个函数生成表,执行时实现动态链接,子类重写父类方法时执行顺序也是这样 对于执行父类构造方法的问题。可以归纳为两种情况 1,如果父类有无...
  • Java - Java子类继承父类并调用接口

    千次阅读 2016-11-10 19:35:22
    父类代码: 功能:定义一个vehicle类及其中的set函数及get函数 public class vehicle { private double speed; private String name; private String color; public void setspeed(int speed){ this.speed=...
  • 父类:public class Subjects { public void b() { System.out.println("学科"); } public void a(){ System.out.println("这是继承父类的方法:Subjects"); } public void c() { System.out.p...
  • 如图,父类子类都放在同一个目录,代码也没错但是总是报错测试代码也报同样的错误,乱码也看不懂到底什么问题。还请大佬看看什么问题[img=https://img-bbs.csdn.net/upload/202010/31/1604148004_442048.png][/img]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,090
精华内容 9,636
关键字:

java子类继承父类

java 订阅