java编程:(二)类的继承

java编程:(二)类的继承,第1张

public class DogTest {

public static void main(String[] args) {

Dog dog = new Dog("Mimi ", "3");

dogsetNickname("Baby");

Systemoutprintln(dogname + "is" + dogage + " years old");

Systemoutprintln("It’s nickname is " + doggetNickname());

Animal animal = new Animal("Tom ", "3");

Systemoutprintln(animalname + animalrun());

}

}

/

/

package test;

/

@author lilin

/

public class Dog extends Animal {

public Dog(String name, String age) {

super(name, age);

}

private String nickname;

public String getNickname() {

return nickname;

}

public void setNickname(String nickname) {

thisnickname = nickname;

}

public String run() {

Systemoutprintln("run by four feet");

return null;

}

}

/

/

package test;

/

@author lilin

/

public class Animal {

protected String name;

protected String age;

public Animal(String name, String age) {

thisname = name;

thisage = age;

}

public String run() {

return "can run";

}

}

子类无条件调用父类的无参构造函数,实例:

父类:

package comtest;

public class TestFatherClass {

private String name="abc";

TestFatherClass(){

Systemoutprintln("1、这是父类的无参构造函数");

}

TestFatherClass(String a){

Systemoutprintln("2、这是父类的有参构造函数");

}

}

子类:

package comtest;

public class TestChildClass extends TestFatherClass{

TestChildClass(){

Systemoutprintln("3、这是子类的无参构造函数");

}

TestChildClass(String str){

Systemoutprintln("4、这是子类的有参构造函数");

}

public static void main(String[] args) {

Systemoutprintln("实例化对象时:(无参)");

TestChildClass test = new TestChildClass();

Systemoutprintln("实例化对象时:(有参)");

TestChildClass test2 = new TestChildClass("adad");

}

}

输出结果:

当然有

father a = new son 是属于父类引用指向了子类对象,java把这种把子类对象赋给父类引用变量称之为向上转型

区别:给你举个例子

比如,father类有一个eat()方法,son类继承了father类,也就拥有了eat()方法,并同时定义了自己的方法drink()如果是father a = new son ,则你只能调用属于father 的方法eat(),而不能调用son的方法drink()也就是说虽然变量a 指向了对象 son ,但由于它编译时的类型是father,所以它不能调用属于son的方法,尽管变量a运行时的类型是son

而son a = new son中的a则可以调用属于它自己的方法drink()和它继承的方法eat(),因为a 这个引用变量编译时的类型和运行时的类型都是son

再说的大众些,father a = new son 是以父亲的角度看儿子,由于父子之间有继承关系,你是创造了一个儿子对象并把它当父亲用,所以你只能调用属于父亲的方法,而son a = new son就是你是创造了一个儿子对象并把它当儿子,所以你可以调用属于儿子的方法和他所继承父亲的方法

以后你理解了多态以后,就好理解这个问题了

public class Salary {

/

  @param args

 /

public static void main(String[] args) {

//用继承,重写方法,都是调用的wages()方法

Person personManager = new Manager();

Systemoutprintln("这个人的工资是:"+personManagerwages());

Person personEngineer = new Engineer();

Systemoutprintln("这个人的工资是:"+personEngineerwages());

Person personWorker = new Worker();

Systemoutprintln("这个人的工资是:"+personWorkerwages());

}

}

//人类

class Person {

public String wages(){

return "";

}

}

//经理类

class Manager extends Person{

public String wages(){

return "5000/月";

}

}

//工程师类

class  Engineer extends Person{

public String wages(){

return "3000/月";

}

}

//工人类

class Worker extends Person{

public String wages(){

return "2000/月";

}

}

知道类、继承,写属性,很容易的事情了。

class Father{

//自有属性

}

class Son extends Father{

///扩展属性

}

class Student extends Person{

private String studentID;

public Student(){

super();

}

public String getStudentID() {

return studentID;

}

public void setStudentID(String studentID) {

thisstudentID = studentID;

}

}

class Person{

protected String name;

protected int age;

protected String phonenumber;

public int getAge() {

return age;

}

public void setAge(int age) {

thisage = age;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

public String getPhonenumber() {

return phonenumber;

}

public void setPhonenumber(String phonenumber) {

thisphonenumber = phonenumber;

}

}

以上就是关于java编程:(二)类的继承全部的内容,包括:java编程:(二)类的继承、java,中的子类继承父类,子类如何调用父类的构造函数举一个简单的例子加注释说明、java中的继承等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10094357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存