我已经看到了一些实例化新对象的引用,特别是在使用继承时。
Cat cat = new Animal();
但是,我不知道这个概念叫什么。所以,我无法阅读它。
我有两个问题。
答案 0 :(得分:0)
这里的基本概念是继承。开始阅读它的好地方是https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
你的例子正好相反 - 它应该是
Animal animal = new Cat();
这是因为Cat
类是特定类型的Animal
- 包含制作Animal
对象所需的所有内容,以及一些额外内容。
在代码中,这看起来像是:
public class Test
{
public static class Animal
{
protected String sound;
public String getSound() { return sound; }
public Animal() { sound = ""; }
}
public static class Cat extends Animal
{
public Cat() { sound = "meow"; }
}
public static void main(String[] args) {
Animal animal = new Cat();
System.out.println(animal.getSound());
}
}
结果将是
喵
因为Cat对象具有来自父Animal的getSound()
方法,但是使用自己的构造函数创建并适当地设置数据。
答案 1 :(得分:0)
private void JadwalIsi_Load(object sender, EventArgs e)
{
TampilSelectCheckBox();
}
private void TampilSelectCheckBox()
{
DataGridViewCheckBoxColumn cb = new DataGridViewCheckBoxColumn();
cb.HeaderText = "Select";
cb.FalseValue = "0";
cb.TrueValue = "1";
cb.Name = "checkBoxColumn";
cb.Width = 40;
JadwalisiGV.Columns.Insert(0, cb);
JadwalisiGV.AllowUserToAddRows = false;
}
private void DeleteSelectedDataBtn_Click(object sender, EventArgs e)
{
List<DataGridViewRow> selectedRows = (from row in JadwalisiGV.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["checkBoxColumn"].Value) == true //error here "String was not recognized as a valid Boolean"
select row).ToList();
foreach (DataGridViewRow row in selectedRows)
{
OleDbConnection kon = new OleDbConnection(konekpengisian);
OleDbCommand command = kon.CreateCommand();
command.CommandText = "DELETE FROM [Schedule$] WHERE [WSID] = '" + row.Cells[2].Value.ToString() + "'";
kon.Open();
command.ExecuteNonQuery();
kon.Close();
MessageBox.Show("Data berhasil dihapus dari Jadwal Pengisian");
}
TampilJadwal();
}
是一种Cat
,但反过来不一定是真的。
因此,Animal
可以是Animal
,Cat
或其他什么,因为猫和狗确实具有动物的属性。这也称为泛化和专业化。 Dog
是一个广义类别,但Animal
是Cat
的专门类别。互联网上有很多资源可供使用。看一看并了解面向对象编程范例。祝你好运!