Java 在超类和子类中创建子类对象的区别
在子类和超类中创建子类的对象有什么区别 我的超类是->LibraryItem.Java 我的子类是->Book.java 1和2的区别是什么Java 在超类和子类中创建子类对象的区别,java,oop,object,Java,Oop,Object,在子类和超类中创建子类的对象有什么区别 我的超类是->LibraryItem.Java 我的子类是->Book.java 1和2的区别是什么 1. LibraryItem book_01 = new Book() //In superclass 2. book_01 = new Book() //In subclass 注意:-请注意,我删除了一些get、set和一些抽象方法。这里只添加了重要的部分 public abstract class Librar
1. LibraryItem book_01 = new Book() //In superclass
2. book_01 = new Book() //In subclass
注意:-请注意,我删除了一些get、set和一些抽象方法。这里只添加了重要的部分
public abstract class LibraryItem {
private boolean status;
private String borrowedDateTime;
private Reader reader;
private int isbn;
private String title;
private String publicationDate;
private String sector;
public abstract void getItemDetails();
public abstract void returnItem();
public abstract void readerDetails();
public abstract void borrowItem();
public static void main (String [] args){
}
}
public class Book extends LibraryItem {
public String author;
public String publisher;
public int no_Of_Pages;
private int readerID;
Book[] bookArray = new Book[100];
Book(int isbn, String title, String sector, String publicationDate,
boolean status, String borrowedDateTime, String author, String publisher, int no_Of_Pages, int readerId){
super();
this.setIsbn(isbn);
this.setTitle(title);
this.setSector(sector);
this.setPublicationDate(publicationDate);
this.setStatus(status);
this.setBorrowedDateTime(borrowedDateTime);
this.author = author;
this.publisher = publisher;
this.no_Of_Pages = no_Of_Pages;
this.setReaderID(readerId);
}
//Create 100 Books
public void createBooks(){
Book book_01;
book_01 = new Book(00001, "Harry Potter", "Adveture", "2012.12.12",
true, "asd","J.K Rowling", "Disney", 500, 0);
bookArray [0] = book_01;
}
}
这看起来有点奇怪,但是 在JAVA中: 非静态方法取决于 对象,而不是指向的引用 就你而言, 时间book_01都指向堆中的book类对象 使用超类引用的优点: 1.优点是可以给超类提供子类对象的任何地址,如果我们不知道确切的对象类型,在运行时绑定的情况下很有用 2.Cons使用超类对象引用子类对象,我们不能调用子类的方法和属性 使用子类引用的优缺点: 1.Pros是指对象可以访问超类属性和方法,也可以访问其属性和方法
2.Cons是对象不能作为对其他类的引用,除非或直到它们是该类的子类。无论在何处创建类的实例,都应该没有区别。你到底想找什么?
newbook()假设Book
是同一个类,code>会做同样的事情。你有什么疑问?我在子类中有一个数组“bookList[]”,我想将对象添加到数组中。我想知道,根据真正的OOP规则,我应该在哪里创建对象。此外,对象具有来自超类(抽象类)的属性和来自子类的属性。您能否发布您的超类和子类的代码,并显示您试图在bookList[]数组中添加对象的代码?如果您可以发布一个属性,将更容易帮助您。你在做什么的细节可能非常重要。