14일차(상속)
(상속,this
및
super
키워드) 다음 코드가 있습니다.
class Super{
public Super(){
System.out.println("Super()");
}
public Super(String str){
System.out.println("Super(String)");
}
}
class Sub extends Super{
public Sub(){
System.out.println("Sub()");
}
public Sub(int i){
this();
System.out.println("Sub(int)");
}
public Sub(String str){
super(str);
System.out.println("Sub(String)");
}
}
public class TestSuperSub{
public static void main(String args[]){
Sub s1 = new Sub();
Sub s2 = new Sub(10);
Sub s3 = new Sub("hello");
}
}
프로그램이 실행된 결과를 작성합니다.
결과 출력:
Super()
Sub()
Super()
Sub()
Sub(int)
Super(String)
Sub(String)
2.
(super
) 다음 코드를 보고 프로그램이 실행된 결과를 작성합니다
class Super{
public void m1(){
System.out.println("m1() in Super");
}
public void m2(){
System.out.println("m2() in Super");
}
}
class Sub extends Super{
public void m1(){
System.out.println("m1() in Sub");
super.m1();
}
}
public class TestSuperSub{
public static void main(String args[]){
Sub s = new Sub();
s.m1();
s.m2();
}
}
결과 출력:
m1() in Sub
m1() in Super
m2() in Super
3. (상속, 대상 구조 과정) 다음과 같은 코드가 있다.
class Meal{
public Meal(){
System.out.println("Meal()");
}
}
class Lunch extends Meal{
public Lunch(){
System.out.println("Lunch()");
}
}
class Vegetable {
public Vegetable(){
System.out.println("Vegetable()");
}
}
class Potato extends Vegetable{
public Potato(){
System.out.println("Potato()");
}
}
class Tomato extends Vegetable{
public Tomato(){
System.out.println("Tomato()");
}
}
class Meat{
public Meat(){
System.out.println("Meat()");
}
}
class Sandwichextends Lunch{
Potato p = new Potato();
Meat m = new Meat();
Tomato t = new Tomato();
public Sandwich(){
System.out.println("Sandwich()");
}
public class TestSandwich{
public static void main(String args[]){
Sandwich s = new Sandwich();
}
}
이 코드의 출력 결과를 쓰십시오.
결과 출력:
Meal()
Lunch()
Vegetable()
Potato()
Meat()
Vegetable()
Tomato()
Sandwich
()
4*(메소드 덮어쓰기) 코드는 다음과 같습니다.
class Super{
int method(){return 0;}
}
class Sub extends Super{
//1
}
에서
//1
에서 컴파일할 수 있는 코드는 다음과 같습니다.
A. public int method(){return 0;}
B. void method(){}
C. void method(int n){}
AC
5. *
(방법 덮어쓰기) 다음과 같은 코드가 있습니다.
class Super{
private void method(){}
}
class Sub extends Super{
//1
}
에서
//1
에서 컴파일할 수 있는 코드는 다음과 같습니다.
A. public int method(){return 0;}
B. void method(){}
C. void method(int n){}
D. private void method(){}
ABCD
6.
package day14;
public class Demo14_3 {
public static void main(String[] args) {
Student stu=new Student(" ",23," ","214000","1381402222");
System.out.println(stu.getName());
System.out.println(stu.getAge());
System.out.println(stu.getAdress());
System.out.println(stu.getZipCode());
System.out.println(stu.getMobile());
stu.getPostAddress();
}
}
class Student{
private String name;
private int age;
private String adress;
private String zipCode;
private String mobile;
public Student(String name,int age,String adress,String zipCode,String mobile){
this.name=name;
this.age=age;
this.adress=adress;
this.zipCode=zipCode;
this.mobile=mobile;
}
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;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public void getPostAddress(){
System.out.println(adress+" "+zipCode);
}
}
7.
class Account{
private int id;
private double balance;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public String getPassword() {
return null;
}
public void setPassword(String password) {
if(password.length()!=6){
return;
}
this.password = password;
}
}
class SaveAccount extends Account{
private double interestRate;
public double getInterestRate() {
return interestRate;
}
public void setInterestRate(double interestRate) {
if(interestRate>0 && interestRate<10/100){
this.interestRate = interestRate;
}
}
}
class CreditAccount extends Account{
private double creditLine;
}
8
동물마다 다른 명칭
1
동물류 정의
이름도 있고, 먹고 부르는 방법도 있어요.
2
개가 동물을 계승하여 부류를 다시 먹고 짖는 방법을 정의하다
3
고양이가 동물을 계승하여 부류를 다시 먹고 짖는 방법을 정의한다
요구사항: 주 함수를 통해 관련 함수와 속성 정보 정보를 호출합니다
class Animal {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat(){
System.out.println(name+" ");
}
public void call(){
System.out.println(name+" ...");
}
}
class Dog extends Animal{
@Override
public void eat() {
System.out.println(super.getName()+" ");
}
@Override
public void call() {
System.out.println(super.getName()+" ....");
}
}
class Cat extends Animal{
@Override
public void eat() {
System.out.println(super.getName()+" ");
}
@Override
public void call() {
System.out.println(super.getName()+" ....");
}
}
public class TestAnimal{
public static void main(String[] args) {
Animal a1 = new Dog();
a1.setName(" ");
a1.eat();
a1.call();
System.out.println();
Animal a2 = new Dog();
a2.setName(" ");
a2.eat();
a2.call();
}
}
9
, 회사의 직원은 다음과 같은 몇 가지 유형으로 나뉜다.
Employee
: 이것은 모든 직원의 부류입니다.
속성: 직원의 성명과 생일 월.
방법: getSalary(int month)
매개 변수 월에 따라 임금을 확정하고, 만약 이 달 직원이 생일을 보낸다면, 회사는 추가로 장려할 것이다
100
원.
SalariedEmployee
:
Employee
고정 임금을 받는 직원.
속성:월급
HourlyEmployee
:
Employee
시간당 월급을 받는 직원, 매달 초과 근무
160
시간
1.5
갑절 임금 지급
속성: 시간당 임금, 매달 근무 시간
SalesEmployee
:
Employee
의 자류, 판매원, 임금은 월 매출액과 공제율에 의해 결정된다
속성: 월 매출액, 공제율
BasePlusSalesEmployee
:
SalesEmployee
의 자류, 고정 기본급이 있는 판매원, 임금은 기본급에 판매 공제 부분을 더한다
속성:기본급.
실현: 1
, 이역봉 고정직원, 월급
3000
생일
2
일하다
180
시간, 월급 얼마 받니
2
시간당
25
일하다
180
시간, 월급 얼마 받니
3
, 링컨 판매원 월 매출액
30
공제금
0.3%
월급을 받다
4
햇빛 고정 기본급 판매원 기본급
1500
판매
20
공제금
0.2%
월급을 받다
public class TestEmployee {
public static void main(String[] args) {
SalariedEmployee se = new SalariedEmployee();
se.setName(" ");
se.setSalary(3000);
se.setBirthMonth(2);
se.getSalary(2);
HourlyEmployee he = new HourlyEmployee();
he.setName(" ");
he.setHourSalary(25);
he.setHours(180);
he.getSalary();
SalesEmployee sae = new SalesEmployee();
sae.setName(" ");
sae.setMonthsales(300000);
sae.setRoyalRate(0.003);
sae.getSalary();
BasePlusSalesEmployee bse = new BasePlusSalesEmployee();
bse.setName(" ");
bse.setBaseSalary(1500);
bse.setMonthsales(200000);
bse.setRoyalRate(0.002);
bse.getSalary();
}
}
class Employee {
String name;
int birthMonth;
double salary;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBirthMonth() {
return birthMonth;
}
public void setBirthMonth(int birthMonth) {
this.birthMonth = birthMonth;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void getSalary(int month) {
if (birthMonth == month) {
System.out.println(name + " " + (salary + 100));
}
}
}
class SalariedEmployee extends Employee {
}
class HourlyEmployee extends Employee {
double hourSalary;
double hours;
double salary;
public double getHourSalary() {
return hourSalary;
}
public void setHourSalary(double hourSalary) {
this.hourSalary = hourSalary;
}
public double getHours() {
return hours;
}
public void setHours(double hours) {
this.hours = hours;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void getSalary() {
if (hours > 160) {
System.out.println(name + " " + (hourSalary * 160 + ((hours - 160) * hourSalary * 1.5)));
} else {
System.out.println(name + " " + hourSalary * hours);
}
}
}
class SalesEmployee extends Employee {
double monthsales;
double royalRate;
public double getMonthsales() {
return monthsales;
}
public void setMonthsales(double monthsales) {
this.monthsales = monthsales;
}
public double getRoyalRate() {
return royalRate;
}
public void setRoyalRate(double royalRate) {
this.royalRate = royalRate;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void getSalary() {
System.out.println(name + " " + monthsales * royalRate);
}
}
class BasePlusSalesEmployee extends SalesEmployee {
double baseSalary;
public double getBaseSalary() {
return baseSalary;
}
public void setBaseSalary(double baseSalary) {
this.baseSalary = baseSalary;
}
public void getSalary() {
System.out.println(name + " " + baseSalary + monthsales * royalRate);
}
}